1 : <?php
2 : /**
3 : * Smarty Internal Plugin Templateparser
4 : *
5 : * This is the template parser.
6 : * It is generated from the internal.templateparser.y file
7 : * @package Smarty
8 : * @subpackage Compiler
9 : * @author Uwe Tews
10 : */
11 :
12 : /**
13 : * This can be used to store both the string representation of
14 : * a token, and any useful meta-data associated with the token.
15 : *
16 : * meta-data should be stored as an array
17 : */
18 1 : class TP_yyToken implements ArrayAccess
19 : {
20 : public $string = '';
21 : public $metadata = array();
22 :
23 : function __construct($s, $m = array())
24 : {
25 0 : if ($s instanceof TP_yyToken) {
26 0 : $this->string = $s->string;
27 0 : $this->metadata = $s->metadata;
28 0 : } else {
29 0 : $this->string = (string) $s;
30 0 : if ($m instanceof TP_yyToken) {
31 0 : $this->metadata = $m->metadata;
32 0 : } elseif (is_array($m)) {
33 0 : $this->metadata = $m;
34 0 : }
35 : }
36 0 : }
37 :
38 : function __toString()
39 : {
40 0 : return $this->_string;
41 : }
42 :
43 : function offsetExists($offset)
44 : {
45 0 : return isset($this->metadata[$offset]);
46 : }
47 :
48 : function offsetGet($offset)
49 : {
50 0 : return $this->metadata[$offset];
51 : }
52 :
53 : function offsetSet($offset, $value)
54 : {
55 0 : if ($offset === null) {
56 0 : if (isset($value[0])) {
57 0 : $x = ($value instanceof TP_yyToken) ?
58 0 : $value->metadata : $value;
59 0 : $this->metadata = array_merge($this->metadata, $x);
60 0 : return;
61 : }
62 0 : $offset = count($this->metadata);
63 0 : }
64 0 : if ($value === null) {
65 0 : return;
66 : }
67 0 : if ($value instanceof TP_yyToken) {
68 0 : if ($value->metadata) {
69 0 : $this->metadata[$offset] = $value->metadata;
70 0 : }
71 0 : } elseif ($value) {
72 0 : $this->metadata[$offset] = $value;
73 0 : }
74 0 : }
75 :
76 : function offsetUnset($offset)
77 : {
78 0 : unset($this->metadata[$offset]);
79 0 : }
80 : }
81 :
82 : /** The following structure represents a single element of the
83 : * parser's stack. Information stored includes:
84 : *
85 : * + The state number for the parser at this level of the stack.
86 : *
87 : * + The value of the token stored at this level of the stack.
88 : * (In other words, the "major" token.)
89 : *
90 : * + The semantic value stored at this level of the stack. This is
91 : * the information used by the action routines in the grammar.
92 : * It is sometimes called the "minor" token.
93 : */
94 : class TP_yyStackEntry
95 1 : {
96 : public $stateno; /* The state-number */
97 : public $major; /* The major token value. This is the code
98 : ** number for the token at this stack level */
99 : public $minor; /* The user-supplied minor token value. This
100 : ** is the value of the token */
101 : };
102 :
103 : // code external to the class is included here
104 :
105 : // declare_class is output here
106 : #line 12 "smarty_internal_templateparser.y"
107 : class Smarty_Internal_Templateparser#line 109 "smarty_internal_templateparser.php"
108 1 : {
109 : /* First off, code is included which follows the "include_class" declaration
110 : ** in the input file. */
111 : #line 14 "smarty_internal_templateparser.y"
112 :
113 : // states whether the parse was successful or not
114 : public $successful = true;
115 : public $retvalue = 0;
116 : private $lex;
117 : private $internalError = false;
118 :
119 : function __construct($lex, $compiler) {
120 : // set instance object
121 403 : self::instance($this);
122 403 : $this->lex = $lex;
123 403 : $this->compiler = $compiler;
124 403 : $this->smarty = $this->compiler->smarty;
125 403 : $this->template = $this->compiler->template;
126 403 : if ($this->template->security && isset($this->smarty->security_handler)) {
127 392 : $this->sec_obj = $this->smarty->security_policy;
128 392 : } else {
129 12 : $this->sec_obj = $this->smarty;
130 : }
131 403 : $this->cacher = $this->template->cacher_object;
132 403 : $this->compiler->has_variable_string = false;
133 403 : $this->compiler->prefix_code = array();
134 403 : $this->prefix_number = 0;
135 403 : }
136 : public static function &instance($new_instance = null)
137 : {
138 403 : static $instance = null;
139 403 : if (isset($new_instance) && is_object($new_instance))
140 403 : $instance = $new_instance;
141 403 : return $instance;
142 : }
143 :
144 : #line 147 "smarty_internal_templateparser.php"
145 :
146 : /* Next is all token values, as class constants
147 : */
148 : /*
149 : ** These constants (all generated automatically by the parser generator)
150 : ** specify the various kinds of tokens (terminals) that the parser
151 : ** understands.
152 : **
153 : ** Each symbol here is a terminal symbol in the grammar.
154 : */
155 : const TP_COMMENT = 1;
156 : const TP_PHP = 2;
157 : const TP_OTHER = 3;
158 : const TP_SHORTTAGEND = 4;
159 : const TP_SHORTTAGSTART = 5;
160 : const TP_XML = 6;
161 : const TP_LDEL = 7;
162 : const TP_RDEL = 8;
163 : const TP_DOLLAR = 9;
164 : const TP_ID = 10;
165 : const TP_EQUAL = 11;
166 : const TP_FOREACH = 12;
167 : const TP_PTR = 13;
168 : const TP_IF = 14;
169 : const TP_SPACE = 15;
170 : const TP_FOR = 16;
171 : const TP_SEMICOLON = 17;
172 : const TP_INCDEC = 18;
173 : const TP_TO = 19;
174 : const TP_STEP = 20;
175 : const TP_AS = 21;
176 : const TP_APTR = 22;
177 : const TP_LDELSLASH = 23;
178 : const TP_INTEGER = 24;
179 : const TP_COMMA = 25;
180 : const TP_COLON = 26;
181 : const TP_UNIMATH = 27;
182 : const TP_OPENP = 28;
183 : const TP_CLOSEP = 29;
184 : const TP_QMARK = 30;
185 : const TP_MATH = 31;
186 : const TP_ANDSYM = 32;
187 : const TP_TYPECAST = 33;
188 : const TP_DOT = 34;
189 : const TP_BOOLEAN = 35;
190 : const TP_NULL = 36;
191 : const TP_SINGLEQUOTESTRING = 37;
192 : const TP_QUOTE = 38;
193 : const TP_DOUBLECOLON = 39;
194 : const TP_AT = 40;
195 : const TP_HATCH = 41;
196 : const TP_OPENB = 42;
197 : const TP_CLOSEB = 43;
198 : const TP_VERT = 44;
199 : const TP_NOT = 45;
200 : const TP_ISIN = 46;
201 : const TP_ISDIVBY = 47;
202 : const TP_ISNOTDIVBY = 48;
203 : const TP_ISEVEN = 49;
204 : const TP_ISNOTEVEN = 50;
205 : const TP_ISEVENBY = 51;
206 : const TP_ISNOTEVENBY = 52;
207 : const TP_ISODD = 53;
208 : const TP_ISNOTODD = 54;
209 : const TP_ISODDBY = 55;
210 : const TP_ISNOTODDBY = 56;
211 : const TP_INSTANCEOF = 57;
212 : const TP_EQUALS = 58;
213 : const TP_NOTEQUALS = 59;
214 : const TP_GREATERTHAN = 60;
215 : const TP_LESSTHAN = 61;
216 : const TP_GREATEREQUAL = 62;
217 : const TP_LESSEQUAL = 63;
218 : const TP_IDENTITY = 64;
219 : const TP_NONEIDENTITY = 65;
220 : const TP_MOD = 66;
221 : const TP_LAND = 67;
222 : const TP_LOR = 68;
223 : const TP_LXOR = 69;
224 : const TP_BACKTICK = 70;
225 : const TP_DOLLARID = 71;
226 : const YY_NO_ACTION = 548;
227 : const YY_ACCEPT_ACTION = 547;
228 : const YY_ERROR_ACTION = 546;
229 :
230 : /* Next are that tables used to determine what action to take based on the
231 : ** current state and lookahead token. These tables are used to implement
232 : ** functions that take a state number and lookahead value and return an
233 : ** action integer.
234 : **
235 : ** Suppose the action integer is N. Then the action is determined as
236 : ** follows
237 : **
238 : ** 0 <= N < self::YYNSTATE Shift N. That is,
239 : ** push the lookahead
240 : ** token onto the stack
241 : ** and goto state N.
242 : **
243 : ** self::YYNSTATE <= N < self::YYNSTATE+self::YYNRULE Reduce by rule N-YYNSTATE.
244 : **
245 : ** N == self::YYNSTATE+self::YYNRULE A syntax error has occurred.
246 : **
247 : ** N == self::YYNSTATE+self::YYNRULE+1 The parser accepts its
248 : ** input. (and concludes parsing)
249 : **
250 : ** N == self::YYNSTATE+self::YYNRULE+2 No such action. Denotes unused
251 : ** slots in the yy_action[] table.
252 : **
253 : ** The action table is constructed as a single large static array $yy_action.
254 : ** Given state S and lookahead X, the action is computed as
255 : **
256 : ** self::$yy_action[self::$yy_shift_ofst[S] + X ]
257 : **
258 : ** If the index value self::$yy_shift_ofst[S]+X is out of range or if the value
259 : ** self::$yy_lookahead[self::$yy_shift_ofst[S]+X] is not equal to X or if
260 : ** self::$yy_shift_ofst[S] is equal to self::YY_SHIFT_USE_DFLT, it means that
261 : ** the action is not in the table and that self::$yy_default[S] should be used instead.
262 : **
263 : ** The formula above is for computing the action when the lookahead is
264 : ** a terminal symbol. If the lookahead is a non-terminal (as occurs after
265 : ** a reduce action) then the static $yy_reduce_ofst array is used in place of
266 : ** the static $yy_shift_ofst array and self::YY_REDUCE_USE_DFLT is used in place of
267 : ** self::YY_SHIFT_USE_DFLT.
268 : **
269 : ** The following are the tables generated in this section:
270 : **
271 : ** self::$yy_action A single table containing all actions.
272 : ** self::$yy_lookahead A table containing the lookahead for each entry in
273 : ** yy_action. Used to detect hash collisions.
274 : ** self::$yy_shift_ofst For each state, the offset into self::$yy_action for
275 : ** shifting terminals.
276 : ** self::$yy_reduce_ofst For each state, the offset into self::$yy_action for
277 : ** shifting non-terminals after a reduce.
278 : ** self::$yy_default Default action for each state.
279 : */
280 : const YY_SZ_ACTTAB = 1375;
281 : static public $yy_action = array(
282 : /* 0 */ 15, 320, 86, 50, 23, 92, 415, 211, 24, 209,
283 : /* 10 */ 206, 299, 36, 415, 31, 132, 108, 230, 17, 261,
284 : /* 20 */ 46, 3, 547, 67, 273, 274, 62, 48, 349, 356,
285 : /* 30 */ 287, 49, 181, 221, 54, 13, 15, 216, 74, 185,
286 : /* 40 */ 91, 231, 26, 291, 229, 41, 218, 160, 23, 91,
287 : /* 50 */ 244, 18, 108, 230, 245, 246, 46, 12, 282, 132,
288 : /* 60 */ 294, 114, 62, 361, 349, 356, 287, 49, 23, 294,
289 : /* 70 */ 54, 13, 181, 15, 10, 84, 176, 182, 254, 132,
290 : /* 80 */ 291, 232, 174, 218, 53, 90, 91, 255, 24, 108,
291 : /* 90 */ 230, 299, 36, 46, 32, 282, 128, 150, 114, 62,
292 : /* 100 */ 361, 349, 356, 287, 49, 154, 294, 54, 13, 241,
293 : /* 110 */ 15, 306, 77, 185, 143, 292, 201, 344, 343, 207,
294 : /* 120 */ 341, 15, 23, 181, 310, 290, 108, 230, 58, 306,
295 : /* 130 */ 46, 12, 187, 132, 63, 326, 62, 108, 349, 356,
296 : /* 140 */ 287, 49, 310, 172, 54, 13, 91, 15, 10, 74,
297 : /* 150 */ 185, 84, 227, 175, 153, 24, 313, 219, 299, 339,
298 : /* 160 */ 91, 40, 279, 108, 230, 310, 294, 46, 32, 164,
299 : /* 170 */ 193, 35, 325, 62, 308, 349, 356, 287, 49, 280,
300 : /* 180 */ 294, 54, 13, 54, 11, 7, 329, 307, 2, 4,
301 : /* 190 */ 311, 305, 5, 6, 323, 181, 208, 24, 244, 169,
302 : /* 200 */ 299, 33, 245, 246, 300, 303, 312, 281, 346, 20,
303 : /* 210 */ 203, 48, 11, 7, 329, 307, 2, 4, 311, 305,
304 : /* 220 */ 5, 6, 15, 250, 84, 183, 24, 304, 37, 299,
305 : /* 230 */ 84, 125, 300, 303, 312, 181, 21, 225, 108, 230,
306 : /* 240 */ 355, 217, 46, 32, 68, 202, 138, 187, 62, 25,
307 : /* 250 */ 349, 356, 287, 49, 242, 29, 54, 13, 15, 247,
308 : /* 260 */ 84, 186, 54, 213, 24, 291, 184, 299, 218, 149,
309 : /* 270 */ 277, 91, 234, 181, 108, 230, 181, 297, 46, 32,
310 : /* 280 */ 282, 223, 173, 114, 62, 361, 349, 356, 287, 49,
311 : /* 290 */ 84, 294, 54, 13, 142, 24, 165, 231, 299, 11,
312 : /* 300 */ 7, 329, 307, 2, 4, 311, 305, 5, 6, 15,
313 : /* 310 */ 61, 74, 185, 354, 24, 309, 328, 299, 181, 300,
314 : /* 320 */ 303, 312, 54, 187, 327, 108, 230, 120, 220, 46,
315 : /* 330 */ 3, 187, 174, 24, 301, 62, 299, 349, 356, 287,
316 : /* 340 */ 49, 148, 306, 54, 13, 322, 30, 22, 91, 296,
317 : /* 350 */ 272, 274, 11, 7, 329, 307, 2, 4, 311, 305,
318 : /* 360 */ 5, 6, 15, 195, 74, 177, 181, 16, 294, 362,
319 : /* 370 */ 412, 244, 300, 303, 312, 245, 246, 187, 108, 230,
320 : /* 380 */ 326, 155, 46, 32, 127, 181, 174, 243, 62, 168,
321 : /* 390 */ 349, 356, 287, 49, 23, 324, 54, 13, 15, 306,
322 : /* 400 */ 74, 179, 257, 222, 199, 132, 42, 139, 75, 295,
323 : /* 410 */ 422, 27, 174, 289, 108, 230, 124, 181, 46, 3,
324 : /* 420 */ 187, 170, 306, 262, 62, 28, 349, 356, 287, 49,
325 : /* 430 */ 187, 306, 54, 13, 285, 286, 11, 7, 329, 307,
326 : /* 440 */ 2, 4, 311, 305, 5, 6, 15, 288, 84, 178,
327 : /* 450 */ 135, 196, 190, 269, 316, 171, 300, 303, 312, 181,
328 : /* 460 */ 187, 187, 108, 180, 321, 306, 15, 32, 84, 186,
329 : /* 470 */ 48, 187, 62, 257, 349, 356, 287, 49, 268, 271,
330 : /* 480 */ 54, 13, 108, 230, 39, 187, 187, 32, 181, 181,
331 : /* 490 */ 44, 175, 62, 250, 349, 356, 287, 49, 88, 40,
332 : /* 500 */ 54, 13, 259, 252, 363, 345, 338, 332, 331, 334,
333 : /* 510 */ 337, 275, 326, 291, 226, 181, 218, 66, 187, 91,
334 : /* 520 */ 123, 284, 98, 210, 15, 78, 84, 189, 282, 340,
335 : /* 530 */ 51, 114, 270, 361, 264, 306, 265, 240, 187, 294,
336 : /* 540 */ 108, 230, 147, 24, 350, 32, 299, 174, 310, 41,
337 : /* 550 */ 62, 107, 349, 356, 287, 49, 24, 306, 54, 188,
338 : /* 560 */ 15, 348, 84, 186, 317, 71, 360, 266, 133, 109,
339 : /* 570 */ 224, 187, 291, 302, 187, 218, 108, 230, 91, 24,
340 : /* 580 */ 360, 32, 228, 306, 360, 181, 62, 44, 349, 356,
341 : /* 590 */ 287, 49, 361, 113, 54, 181, 47, 44, 294, 259,
342 : /* 600 */ 252, 363, 345, 338, 332, 331, 334, 337, 360, 259,
343 : /* 610 */ 252, 363, 345, 338, 332, 331, 334, 337, 291, 226,
344 : /* 620 */ 276, 218, 66, 278, 91, 330, 134, 104, 319, 297,
345 : /* 630 */ 187, 57, 187, 282, 314, 187, 114, 69, 361, 291,
346 : /* 640 */ 226, 187, 218, 66, 294, 91, 70, 117, 101, 350,
347 : /* 650 */ 163, 347, 360, 351, 282, 308, 115, 114, 187, 361,
348 : /* 660 */ 187, 360, 360, 291, 226, 294, 218, 66, 167, 91,
349 : /* 670 */ 350, 360, 100, 308, 315, 318, 144, 118, 282, 333,
350 : /* 680 */ 233, 114, 187, 361, 291, 226, 187, 218, 65, 294,
351 : /* 690 */ 91, 306, 360, 97, 350, 23, 157, 121, 236, 282,
352 : /* 700 */ 293, 308, 114, 119, 361, 221, 132, 38, 234, 253,
353 : /* 710 */ 294, 181, 306, 291, 226, 350, 218, 66, 306, 91,
354 : /* 720 */ 291, 226, 99, 218, 66, 358, 91, 237, 282, 102,
355 : /* 730 */ 16, 114, 136, 361, 238, 282, 197, 34, 114, 294,
356 : /* 740 */ 361, 145, 291, 298, 350, 218, 294, 306, 91, 291,
357 : /* 750 */ 226, 350, 218, 66, 239, 91, 306, 282, 105, 205,
358 : /* 760 */ 110, 76, 361, 82, 282, 85, 25, 114, 294, 361,
359 : /* 770 */ 291, 226, 87, 218, 66, 294, 91, 352, 1, 95,
360 : /* 780 */ 350, 18, 80, 214, 263, 282, 267, 200, 114, 9,
361 : /* 790 */ 361, 291, 226, 81, 218, 64, 294, 91, 187, 359,
362 : /* 800 */ 96, 350, 192, 297, 45, 137, 282, 43, 94, 114,
363 : /* 810 */ 325, 361, 291, 226, 204, 218, 66, 294, 91, 19,
364 : /* 820 */ 251, 103, 350, 212, 14, 335, 55, 282, 8, 297,
365 : /* 830 */ 114, 336, 361, 297, 297, 297, 297, 297, 294, 297,
366 : /* 840 */ 108, 291, 226, 350, 218, 66, 297, 91, 291, 298,
367 : /* 850 */ 106, 218, 129, 297, 91, 342, 282, 297, 297, 114,
368 : /* 860 */ 297, 361, 297, 282, 297, 297, 114, 294, 361, 297,
369 : /* 870 */ 297, 215, 350, 297, 294, 297, 297, 291, 229, 297,
370 : /* 880 */ 218, 160, 297, 91, 297, 297, 297, 60, 249, 297,
371 : /* 890 */ 291, 298, 282, 218, 129, 114, 91, 361, 297, 297,
372 : /* 900 */ 297, 297, 297, 294, 297, 282, 297, 297, 114, 297,
373 : /* 910 */ 361, 297, 256, 235, 297, 297, 294, 297, 291, 83,
374 : /* 920 */ 297, 73, 52, 89, 79, 291, 298, 297, 218, 129,
375 : /* 930 */ 297, 91, 297, 282, 297, 297, 114, 297, 361, 297,
376 : /* 940 */ 282, 297, 297, 114, 294, 361, 297, 297, 283, 291,
377 : /* 950 */ 298, 294, 218, 56, 93, 91, 297, 297, 297, 297,
378 : /* 960 */ 297, 297, 297, 297, 282, 297, 297, 114, 297, 361,
379 : /* 970 */ 297, 297, 297, 291, 83, 294, 72, 59, 89, 79,
380 : /* 980 */ 291, 298, 297, 218, 129, 297, 91, 297, 282, 297,
381 : /* 990 */ 297, 114, 297, 361, 297, 282, 297, 297, 114, 294,
382 : /* 1000 */ 361, 291, 298, 198, 218, 112, 294, 91, 291, 298,
383 : /* 1010 */ 297, 218, 131, 297, 91, 297, 282, 297, 297, 114,
384 : /* 1020 */ 297, 361, 297, 282, 297, 297, 114, 294, 361, 291,
385 : /* 1030 */ 298, 297, 218, 151, 294, 91, 297, 297, 297, 297,
386 : /* 1040 */ 297, 297, 297, 297, 282, 297, 297, 114, 297, 361,
387 : /* 1050 */ 291, 298, 297, 218, 152, 294, 91, 291, 298, 297,
388 : /* 1060 */ 218, 130, 297, 91, 297, 282, 297, 297, 114, 297,
389 : /* 1070 */ 361, 297, 282, 297, 297, 114, 294, 361, 291, 298,
390 : /* 1080 */ 297, 218, 161, 294, 91, 291, 298, 297, 218, 146,
391 : /* 1090 */ 297, 91, 297, 282, 297, 297, 114, 297, 361, 297,
392 : /* 1100 */ 282, 297, 297, 114, 294, 361, 291, 298, 297, 218,
393 : /* 1110 */ 156, 294, 91, 297, 297, 297, 297, 297, 297, 297,
394 : /* 1120 */ 297, 282, 297, 297, 114, 297, 361, 291, 298, 297,
395 : /* 1130 */ 218, 122, 294, 91, 291, 298, 297, 218, 162, 297,
396 : /* 1140 */ 91, 297, 282, 297, 297, 114, 297, 361, 297, 282,
397 : /* 1150 */ 297, 297, 114, 294, 361, 291, 298, 297, 218, 166,
398 : /* 1160 */ 294, 91, 291, 298, 297, 218, 126, 297, 91, 297,
399 : /* 1170 */ 282, 297, 297, 114, 297, 361, 297, 282, 297, 297,
400 : /* 1180 */ 114, 294, 361, 291, 298, 297, 218, 141, 294, 91,
401 : /* 1190 */ 297, 297, 297, 297, 297, 297, 297, 297, 282, 297,
402 : /* 1200 */ 297, 114, 297, 361, 291, 298, 297, 218, 158, 294,
403 : /* 1210 */ 91, 291, 298, 297, 218, 159, 297, 91, 297, 282,
404 : /* 1220 */ 297, 297, 114, 297, 361, 297, 282, 297, 297, 114,
405 : /* 1230 */ 294, 361, 291, 298, 297, 218, 140, 294, 91, 291,
406 : /* 1240 */ 298, 297, 218, 297, 297, 91, 297, 282, 297, 297,
407 : /* 1250 */ 114, 297, 361, 297, 282, 297, 297, 111, 294, 361,
408 : /* 1260 */ 291, 298, 297, 218, 297, 294, 91, 297, 297, 297,
409 : /* 1270 */ 297, 297, 297, 297, 297, 282, 297, 297, 116, 297,
410 : /* 1280 */ 361, 291, 191, 297, 218, 297, 294, 91, 291, 260,
411 : /* 1290 */ 297, 218, 291, 353, 91, 218, 194, 297, 91, 291,
412 : /* 1300 */ 357, 361, 218, 258, 297, 91, 251, 294, 361, 297,
413 : /* 1310 */ 14, 297, 361, 297, 294, 297, 297, 297, 294, 361,
414 : /* 1320 */ 297, 297, 297, 297, 297, 294, 108, 297, 297, 297,
415 : /* 1330 */ 297, 297, 297, 297, 297, 297, 297, 297, 297, 297,
416 : /* 1340 */ 297, 248, 297, 297, 297, 297, 297, 297, 297, 297,
417 : /* 1350 */ 297, 297, 297, 297, 297, 297, 297, 297, 297, 297,
418 : /* 1360 */ 297, 297, 297, 297, 297, 297, 297, 297, 297, 297,
419 : /* 1370 */ 297, 297, 297, 60, 249,
420 : );
421 : static public $yy_lookahead = array(
422 : /* 0 */ 7, 105, 9, 10, 28, 12, 8, 14, 7, 16,
423 : /* 10 */ 34, 10, 11, 15, 26, 39, 23, 24, 11, 43,
424 : /* 20 */ 27, 28, 73, 74, 75, 76, 33, 13, 35, 36,
425 : /* 30 */ 37, 38, 44, 26, 41, 42, 7, 79, 9, 10,
426 : /* 40 */ 82, 40, 22, 76, 77, 26, 79, 80, 28, 82,
427 : /* 50 */ 27, 11, 23, 24, 31, 32, 27, 28, 91, 39,
428 : /* 60 */ 102, 94, 33, 96, 35, 36, 37, 38, 28, 102,
429 : /* 70 */ 41, 42, 44, 7, 45, 9, 10, 110, 111, 39,
430 : /* 80 */ 76, 77, 83, 79, 80, 81, 82, 8, 7, 23,
431 : /* 90 */ 24, 10, 11, 27, 28, 91, 78, 17, 94, 33,
432 : /* 100 */ 96, 35, 36, 37, 38, 25, 102, 41, 42, 43,
433 : /* 110 */ 7, 93, 9, 10, 78, 1, 2, 3, 4, 5,
434 : /* 120 */ 6, 7, 28, 44, 106, 8, 23, 24, 84, 93,
435 : /* 130 */ 27, 28, 15, 39, 84, 18, 33, 23, 35, 36,
436 : /* 140 */ 37, 38, 106, 79, 41, 42, 82, 7, 45, 9,
437 : /* 150 */ 10, 9, 10, 34, 17, 7, 8, 79, 10, 8,
438 : /* 160 */ 82, 42, 98, 23, 24, 106, 102, 27, 28, 100,
439 : /* 170 */ 22, 20, 103, 33, 105, 35, 36, 37, 38, 8,
440 : /* 180 */ 102, 41, 42, 41, 47, 48, 49, 50, 51, 52,
441 : /* 190 */ 53, 54, 55, 56, 29, 44, 10, 7, 27, 8,
442 : /* 200 */ 10, 11, 31, 32, 67, 68, 69, 10, 18, 11,
443 : /* 210 */ 24, 13, 47, 48, 49, 50, 51, 52, 53, 54,
444 : /* 220 */ 55, 56, 7, 76, 9, 10, 7, 8, 7, 10,
445 : /* 230 */ 9, 10, 67, 68, 69, 44, 25, 40, 23, 24,
446 : /* 240 */ 8, 22, 27, 28, 97, 13, 101, 15, 33, 11,
447 : /* 250 */ 35, 36, 37, 38, 43, 26, 41, 42, 7, 112,
448 : /* 260 */ 9, 10, 41, 90, 7, 76, 77, 10, 79, 80,
449 : /* 270 */ 81, 82, 34, 44, 23, 24, 44, 104, 27, 28,
450 : /* 280 */ 91, 29, 8, 94, 33, 96, 35, 36, 37, 38,
451 : /* 290 */ 9, 102, 41, 42, 101, 7, 84, 40, 10, 47,
452 : /* 300 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 7,
453 : /* 310 */ 84, 9, 10, 8, 7, 8, 8, 10, 44, 67,
454 : /* 320 */ 68, 69, 41, 15, 8, 23, 24, 78, 40, 27,
455 : /* 330 */ 28, 15, 83, 7, 8, 33, 10, 35, 36, 37,
456 : /* 340 */ 38, 101, 93, 41, 42, 79, 7, 25, 82, 8,
457 : /* 350 */ 75, 76, 47, 48, 49, 50, 51, 52, 53, 54,
458 : /* 360 */ 55, 56, 7, 21, 9, 10, 44, 28, 102, 10,
459 : /* 370 */ 8, 27, 67, 68, 69, 31, 32, 15, 23, 24,
460 : /* 380 */ 18, 10, 27, 28, 78, 44, 83, 43, 33, 83,
461 : /* 390 */ 35, 36, 37, 38, 28, 10, 41, 42, 7, 93,
462 : /* 400 */ 9, 10, 29, 9, 10, 39, 7, 78, 9, 10,
463 : /* 410 */ 44, 108, 83, 8, 23, 24, 78, 44, 27, 28,
464 : /* 420 */ 15, 83, 93, 24, 33, 30, 35, 36, 37, 38,
465 : /* 430 */ 15, 93, 41, 42, 35, 36, 47, 48, 49, 50,
466 : /* 440 */ 51, 52, 53, 54, 55, 56, 7, 41, 9, 10,
467 : /* 450 */ 78, 86, 87, 8, 8, 83, 67, 68, 69, 44,
468 : /* 460 */ 15, 15, 23, 24, 8, 93, 7, 28, 9, 10,
469 : /* 470 */ 13, 15, 33, 29, 35, 36, 37, 38, 8, 8,
470 : /* 480 */ 41, 42, 23, 24, 30, 15, 15, 28, 44, 44,
471 : /* 490 */ 46, 34, 33, 76, 35, 36, 37, 38, 29, 42,
472 : /* 500 */ 41, 42, 58, 59, 60, 61, 62, 63, 64, 65,
473 : /* 510 */ 66, 8, 18, 76, 77, 44, 79, 80, 15, 82,
474 : /* 520 */ 78, 70, 85, 86, 7, 9, 9, 10, 91, 112,
475 : /* 530 */ 10, 94, 12, 96, 14, 93, 16, 10, 15, 102,
476 : /* 540 */ 23, 24, 78, 7, 107, 28, 10, 83, 106, 26,
477 : /* 550 */ 33, 89, 35, 36, 37, 38, 7, 93, 41, 10,
478 : /* 560 */ 7, 24, 9, 10, 8, 89, 104, 8, 78, 89,
479 : /* 570 */ 29, 15, 76, 77, 15, 79, 23, 24, 82, 7,
480 : /* 580 */ 104, 28, 10, 93, 104, 44, 33, 46, 35, 36,
481 : /* 590 */ 37, 38, 96, 89, 41, 44, 57, 46, 102, 58,
482 : /* 600 */ 59, 60, 61, 62, 63, 64, 65, 66, 104, 58,
483 : /* 610 */ 59, 60, 61, 62, 63, 64, 65, 66, 76, 77,
484 : /* 620 */ 8, 79, 80, 8, 82, 8, 101, 85, 8, 104,
485 : /* 630 */ 15, 10, 15, 91, 8, 15, 94, 89, 96, 76,
486 : /* 640 */ 77, 15, 79, 80, 102, 82, 89, 89, 85, 107,
487 : /* 650 */ 100, 8, 104, 8, 91, 105, 89, 94, 15, 96,
488 : /* 660 */ 15, 104, 104, 76, 77, 102, 79, 80, 100, 82,
489 : /* 670 */ 107, 104, 85, 105, 10, 8, 78, 89, 91, 8,
490 : /* 680 */ 13, 94, 15, 96, 76, 77, 15, 79, 80, 102,
491 : /* 690 */ 82, 93, 104, 85, 107, 28, 100, 78, 29, 91,
492 : /* 700 */ 41, 105, 94, 78, 96, 26, 39, 22, 34, 4,
493 : /* 710 */ 102, 44, 93, 76, 77, 107, 79, 80, 93, 82,
494 : /* 720 */ 76, 77, 85, 79, 80, 8, 82, 29, 91, 85,
495 : /* 730 */ 28, 94, 78, 96, 43, 91, 3, 19, 94, 102,
496 : /* 740 */ 96, 78, 76, 77, 107, 79, 102, 93, 82, 76,
497 : /* 750 */ 77, 107, 79, 80, 4, 82, 93, 91, 85, 10,
498 : /* 760 */ 94, 9, 96, 9, 91, 9, 11, 94, 102, 96,
499 : /* 770 */ 76, 77, 15, 79, 80, 102, 82, 8, 15, 85,
500 : /* 780 */ 107, 11, 9, 3, 8, 91, 8, 10, 94, 109,
501 : /* 790 */ 96, 76, 77, 9, 79, 80, 102, 82, 15, 93,
502 : /* 800 */ 85, 107, 21, 104, 95, 101, 91, 15, 98, 94,
503 : /* 810 */ 103, 96, 76, 77, 92, 79, 80, 102, 82, 28,
504 : /* 820 */ 3, 85, 107, 88, 7, 86, 101, 91, 88, 113,
505 : /* 830 */ 94, 15, 96, 113, 113, 113, 113, 113, 102, 113,
506 : /* 840 */ 23, 76, 77, 107, 79, 80, 113, 82, 76, 77,
507 : /* 850 */ 85, 79, 80, 113, 82, 38, 91, 113, 113, 94,
508 : /* 860 */ 113, 96, 113, 91, 113, 113, 94, 102, 96, 113,
509 : /* 870 */ 113, 99, 107, 113, 102, 113, 113, 76, 77, 113,
510 : /* 880 */ 79, 80, 113, 82, 113, 113, 113, 70, 71, 113,
511 : /* 890 */ 76, 77, 91, 79, 80, 94, 82, 96, 113, 113,
512 : /* 900 */ 113, 113, 113, 102, 113, 91, 113, 113, 94, 113,
513 : /* 910 */ 96, 113, 111, 99, 113, 113, 102, 113, 76, 77,
514 : /* 920 */ 113, 79, 80, 81, 82, 76, 77, 113, 79, 80,
515 : /* 930 */ 113, 82, 113, 91, 113, 113, 94, 113, 96, 113,
516 : /* 940 */ 91, 113, 113, 94, 102, 96, 113, 113, 99, 76,
517 : /* 950 */ 77, 102, 79, 80, 81, 82, 113, 113, 113, 113,
518 : /* 960 */ 113, 113, 113, 113, 91, 113, 113, 94, 113, 96,
519 : /* 970 */ 113, 113, 113, 76, 77, 102, 79, 80, 81, 82,
520 : /* 980 */ 76, 77, 113, 79, 80, 113, 82, 113, 91, 113,
521 : /* 990 */ 113, 94, 113, 96, 113, 91, 113, 113, 94, 102,
522 : /* 1000 */ 96, 76, 77, 99, 79, 80, 102, 82, 76, 77,
523 : /* 1010 */ 113, 79, 80, 113, 82, 113, 91, 113, 113, 94,
524 : /* 1020 */ 113, 96, 113, 91, 113, 113, 94, 102, 96, 76,
525 : /* 1030 */ 77, 113, 79, 80, 102, 82, 113, 113, 113, 113,
526 : /* 1040 */ 113, 113, 113, 113, 91, 113, 113, 94, 113, 96,
527 : /* 1050 */ 76, 77, 113, 79, 80, 102, 82, 76, 77, 113,
528 : /* 1060 */ 79, 80, 113, 82, 113, 91, 113, 113, 94, 113,
529 : /* 1070 */ 96, 113, 91, 113, 113, 94, 102, 96, 76, 77,
530 : /* 1080 */ 113, 79, 80, 102, 82, 76, 77, 113, 79, 80,
531 : /* 1090 */ 113, 82, 113, 91, 113, 113, 94, 113, 96, 113,
532 : /* 1100 */ 91, 113, 113, 94, 102, 96, 76, 77, 113, 79,
533 : /* 1110 */ 80, 102, 82, 113, 113, 113, 113, 113, 113, 113,
534 : /* 1120 */ 113, 91, 113, 113, 94, 113, 96, 76, 77, 113,
535 : /* 1130 */ 79, 80, 102, 82, 76, 77, 113, 79, 80, 113,
536 : /* 1140 */ 82, 113, 91, 113, 113, 94, 113, 96, 113, 91,
537 : /* 1150 */ 113, 113, 94, 102, 96, 76, 77, 113, 79, 80,
538 : /* 1160 */ 102, 82, 76, 77, 113, 79, 80, 113, 82, 113,
539 : /* 1170 */ 91, 113, 113, 94, 113, 96, 113, 91, 113, 113,
540 : /* 1180 */ 94, 102, 96, 76, 77, 113, 79, 80, 102, 82,
541 : /* 1190 */ 113, 113, 113, 113, 113, 113, 113, 113, 91, 113,
542 : /* 1200 */ 113, 94, 113, 96, 76, 77, 113, 79, 80, 102,
543 : /* 1210 */ 82, 76, 77, 113, 79, 80, 113, 82, 113, 91,
544 : /* 1220 */ 113, 113, 94, 113, 96, 113, 91, 113, 113, 94,
545 : /* 1230 */ 102, 96, 76, 77, 113, 79, 80, 102, 82, 76,
546 : /* 1240 */ 77, 113, 79, 113, 113, 82, 113, 91, 113, 113,
547 : /* 1250 */ 94, 113, 96, 113, 91, 113, 113, 94, 102, 96,
548 : /* 1260 */ 76, 77, 113, 79, 113, 102, 82, 113, 113, 113,
549 : /* 1270 */ 113, 113, 113, 113, 113, 91, 113, 113, 94, 113,
550 : /* 1280 */ 96, 76, 77, 113, 79, 113, 102, 82, 76, 77,
551 : /* 1290 */ 113, 79, 76, 77, 82, 79, 91, 113, 82, 76,
552 : /* 1300 */ 77, 96, 79, 91, 113, 82, 3, 102, 96, 113,
553 : /* 1310 */ 7, 113, 96, 113, 102, 113, 113, 113, 102, 96,
554 : /* 1320 */ 113, 113, 113, 113, 113, 102, 23, 113, 113, 113,
555 : /* 1330 */ 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
556 : /* 1340 */ 113, 38, 113, 113, 113, 113, 113, 113, 113, 113,
557 : /* 1350 */ 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
558 : /* 1360 */ 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
559 : /* 1370 */ 113, 113, 113, 70, 71,
560 : );
561 : const YY_SHIFT_USE_DFLT = -25;
562 : const YY_SHIFT_MAX = 235;
563 : static public $yy_shift_ofst = array(
564 : /* 0 */ 114, 103, 29, 29, 29, 29, 29, 29, 29, 29,
565 : /* 10 */ 29, 29, 29, 355, -7, -7, 140, 302, 391, 140,
566 : /* 20 */ 302, 355, 140, 140, 140, 140, 140, 140, 140, 140,
567 : /* 30 */ 140, 140, 140, 140, 140, 140, 140, 140, 140, 140,
568 : /* 40 */ 66, 215, 251, 439, 459, 553, 553, 517, 221, 1303,
569 : /* 50 */ 667, 232, 445, 471, 142, 457, 415, 415, 523, 415,
570 : /* 60 */ 281, 523, 281, 523, 444, 541, 551, 114, 817, 190,
571 : /* 70 */ 1, 257, 362, 117, 572, 536, 536, 572, 536, 198,
572 : /* 80 */ 536, 536, 536, 671, 536, 536, 549, 784, 14, 783,
573 : /* 90 */ 783, 14, 792, 783, 14, 137, 165, 252, 305, 389,
574 : /* 100 */ 389, 389, 389, 389, 389, 389, 389, 148, 520, 219,
575 : /* 110 */ 171, 344, 151, 288, 23, 81, 23, 326, 307, 308,
576 : /* 120 */ 316, 446, 79, 456, 645, 339, 229, 620, 617, 322,
577 : /* 130 */ 341, 373, 394, 643, 119, 626, 405, 119, 119, 615,
578 : /* 140 */ -12, 274, 119, 556, 470, 503, 191, 559, 119, 28,
579 : /* 150 */ 816, 28, 28, 816, 784, 791, 28, 14, 28, 28,
580 : /* 160 */ 28, 28, 28, 14, 14, 19, 28, 14, -25, -25,
581 : /* 170 */ -25, -25, -25, -25, -25, 399, -24, 20, 40, 366,
582 : /* 180 */ 238, 197, 211, 94, -2, 94, 94, 186, 7, 94,
583 : /* 190 */ 80, 781, 752, 754, 342, 756, 718, 750, 698, 702,
584 : /* 200 */ 691, 733, 749, 755, 776, 778, 777, 780, 770, 757,
585 : /* 210 */ 769, 763, 773, 717, 705, 469, 451, 516, 494, 406,
586 : /* 220 */ 385, 359, 371, 395, 454, 527, 539, 659, 679, 685,
587 : /* 230 */ 674, 664, 612, 621, 537, 669,
588 : );
589 : const YY_REDUCE_USE_DFLT = -105;
590 : const YY_REDUCE_MAX = 174;
591 : static public $yy_reduce_ofst = array(
592 : /* 0 */ -51, 437, 637, 608, 563, 644, 542, 587, 694, 736,
593 : /* 10 */ 765, 673, 715, -33, 842, 897, 904, 4, 189, 772,
594 : /* 20 */ 873, 801, 849, 814, 1051, 1058, 1128, 1079, 1086, 1030,
595 : /* 30 */ 1009, 953, 932, 974, 925, 981, 1002, 1107, 1135, 1156,
596 : /* 40 */ 1163, 1184, 666, 1205, 1212, 1216, 496, 1223, 64, 147,
597 : /* 50 */ 372, 338, 329, 464, 78, 69, 249, 306, 36, 329,
598 : /* 60 */ -42, 18, 266, 442, 303, 303, 303, 275, 417, 173,
599 : /* 70 */ 525, 525, 654, 654, 476, 504, 462, 557, 588, 550,
600 : /* 80 */ 548, 567, 558, 490, 476, 480, 476, 365, 596, 663,
601 : /* 90 */ 598, 550, 625, 619, 568, 680, 680, 680, 680, 680,
602 : /* 100 */ 680, 680, 680, 680, 680, 680, 680, 699, 722, 699,
603 : /* 110 */ 709, 709, -1, 699, 709, 699, 709, 699, 699, 706,
604 : /* 120 */ 706, 706, -1, 706, 706, 704, -1, 706, 706, -1,
605 : /* 130 */ -1, -1, 710, 706, 707, 706, 706, 707, 707, 706,
606 : /* 140 */ -1, -1, 707, 706, 706, 706, -1, 706, 707, -1,
607 : /* 150 */ 740, -1, -1, 735, 739, 725, -1, -104, -1, -1,
608 : /* 160 */ -1, -1, -1, -104, -104, 59, -1, -104, 44, 240,
609 : /* 170 */ 226, 50, 145, 193, 212,
610 : );
611 : static public $yyExpectedTokens = array(
612 : /* 0 */ array(1, 2, 3, 4, 5, 6, 7, 23, ),
613 : /* 1 */ array(7, 9, 10, 23, 24, 27, 28, 33, 35, 36, 37, 38, 41, 42, 45, ),
614 : /* 2 */ array(7, 9, 10, 23, 24, 27, 28, 33, 35, 36, 37, 38, 41, 42, 45, ),
615 : /* 3 */ array(7, 9, 10, 23, 24, 27, 28, 33, 35, 36, 37, 38, 41, 42, 45, ),
616 : /* 4 */ array(7, 9, 10, 23, 24, 27, 28, 33, 35, 36, 37, 38, 41, 42, 45, ),
617 : /* 5 */ array(7, 9, 10, 23, 24, 27, 28, 33, 35, 36, 37, 38, 41, 42, 45, ),
618 : /* 6 */ array(7, 9, 10, 23, 24, 27, 28, 33, 35, 36, 37, 38, 41, 42, 45, ),
619 : /* 7 */ array(7, 9, 10, 23, 24, 27, 28, 33, 35, 36, 37, 38, 41, 42, 45, ),
620 : /* 8 */ array(7, 9, 10, 23, 24, 27, 28, 33, 35, 36, 37, 38, 41, 42, 45, ),
621 : /* 9 */ array(7, 9, 10, 23, 24, 27, 28, 33, 35, 36, 37, 38, 41, 42, 45, ),
622 : /* 10 */ array(7, 9, 10, 23, 24, 27, 28, 33, 35, 36, 37, 38, 41, 42, 45, ),
623 : /* 11 */ array(7, 9, 10, 23, 24, 27, 28, 33, 35, 36, 37, 38, 41, 42, 45, ),
624 : /* 12 */ array(7, 9, 10, 23, 24, 27, 28, 33, 35, 36, 37, 38, 41, 42, 45, ),
625 : /* 13 */ array(7, 9, 10, 23, 24, 27, 28, 33, 35, 36, 37, 38, 41, 42, ),
626 : /* 14 */ array(7, 9, 10, 12, 14, 16, 23, 24, 27, 28, 33, 35, 36, 37, 38, 41, 42, ),
627 : /* 15 */ array(7, 9, 10, 12, 14, 16, 23, 24, 27, 28, 33, 35, 36, 37, 38, 41, 42, ),
628 : /* 16 */ array(7, 9, 10, 23, 24, 27, 28, 33, 35, 36, 37, 38, 41, 42, ),
629 : /* 17 */ array(7, 9, 10, 23, 24, 27, 28, 33, 35, 36, 37, 38, 41, 42, ),
630 : /* 18 */ array(7, 9, 10, 23, 24, 27, 28, 33, 35, 36, 37, 38, 41, 42, ),
631 : /* 19 */ array(7, 9, 10, 23, 24, 27, 28, 33, 35, 36, 37, 38, 41, 42, ),
632 : /* 20 */ array(7, 9, 10, 23, 24, 27, 28, 33, 35, 36, 37, 38, 41, 42, ),
633 : /* 21 */ array(7, 9, 10, 23, 24, 27, 28, 33, 35, 36, 37, 38, 41, 42, ),
634 : /* 22 */ array(7, 9, 10, 23, 24, 27, 28, 33, 35, 36, 37, 38, 41, 42, ),
635 : /* 23 */ array(7, 9, 10, 23, 24, 27, 28, 33, 35, 36, 37, 38, 41, 42, ),
636 : /* 24 */ array(7, 9, 10, 23, 24, 27, 28, 33, 35, 36, 37, 38, 41, 42, ),
637 : /* 25 */ array(7, 9, 10, 23, 24, 27, 28, 33, 35, 36, 37, 38, 41, 42, ),
638 : /* 26 */ array(7, 9, 10, 23, 24, 27, 28, 33, 35, 36, 37, 38, 41, 42, ),
639 : /* 27 */ array(7, 9, 10, 23, 24, 27, 28, 33, 35, 36, 37, 38, 41, 42, ),
640 : /* 28 */ array(7, 9, 10, 23, 24, 27, 28, 33, 35, 36, 37, 38, 41, 42, ),
641 : /* 29 */ array(7, 9, 10, 23, 24, 27, 28, 33, 35, 36, 37, 38, 41, 42, ),
642 : /* 30 */ array(7, 9, 10, 23, 24, 27, 28, 33, 35, 36, 37, 38, 41, 42, ),
643 : /* 31 */ array(7, 9, 10, 23, 24, 27, 28, 33, 35, 36, 37, 38, 41, 42, ),
644 : /* 32 */ array(7, 9, 10, 23, 24, 27, 28, 33, 35, 36, 37, 38, 41, 42, ),
645 : /* 33 */ array(7, 9, 10, 23, 24, 27, 28, 33, 35, 36, 37, 38, 41, 42, ),
646 : /* 34 */ array(7, 9, 10, 23, 24, 27, 28, 33, 35, 36, 37, 38, 41, 42, ),
647 : /* 35 */ array(7, 9, 10, 23, 24, 27, 28, 33, 35, 36, 37, 38, 41, 42, ),
648 : /* 36 */ array(7, 9, 10, 23, 24, 27, 28, 33, 35, 36, 37, 38, 41, 42, ),
649 : /* 37 */ array(7, 9, 10, 23, 24, 27, 28, 33, 35, 36, 37, 38, 41, 42, ),
650 : /* 38 */ array(7, 9, 10, 23, 24, 27, 28, 33, 35, 36, 37, 38, 41, 42, ),
651 : /* 39 */ array(7, 9, 10, 23, 24, 27, 28, 33, 35, 36, 37, 38, 41, 42, ),
652 : /* 40 */ array(7, 9, 10, 23, 24, 27, 28, 33, 35, 36, 37, 38, 41, 42, 43, ),
653 : /* 41 */ array(7, 9, 10, 23, 24, 27, 28, 33, 35, 36, 37, 38, 41, 42, ),
654 : /* 42 */ array(7, 9, 10, 23, 24, 27, 28, 33, 35, 36, 37, 38, 41, 42, ),
655 : /* 43 */ array(7, 9, 10, 23, 24, 28, 33, 35, 36, 37, 38, 41, 42, ),
656 : /* 44 */ array(7, 9, 10, 23, 24, 28, 33, 35, 36, 37, 38, 41, 42, ),
657 : /* 45 */ array(7, 9, 10, 23, 24, 28, 33, 35, 36, 37, 38, 41, ),
658 : /* 46 */ array(7, 9, 10, 23, 24, 28, 33, 35, 36, 37, 38, 41, ),
659 : /* 47 */ array(7, 9, 10, 23, 24, 28, 33, 35, 36, 37, 38, 41, ),
660 : /* 48 */ array(7, 9, 10, 41, ),
661 : /* 49 */ array(3, 7, 23, 38, 70, 71, ),
662 : /* 50 */ array(8, 13, 15, 28, 39, 44, ),
663 : /* 51 */ array(8, 13, 15, 44, ),
664 : /* 52 */ array(8, 15, 44, ),
665 : /* 53 */ array(8, 15, 44, ),
666 : /* 54 */ array(9, 10, 41, ),
667 : /* 55 */ array(13, 34, 42, ),
668 : /* 56 */ array(15, 44, ),
669 : /* 57 */ array(15, 44, ),
670 : /* 58 */ array(15, 26, ),
671 : /* 59 */ array(15, 44, ),
672 : /* 60 */ array(9, 41, ),
673 : /* 61 */ array(15, 26, ),
674 : /* 62 */ array(9, 41, ),
675 : /* 63 */ array(15, 26, ),
676 : /* 64 */ array(29, 44, 46, 58, 59, 60, 61, 62, 63, 64, 65, 66, ),
677 : /* 65 */ array(29, 44, 46, 58, 59, 60, 61, 62, 63, 64, 65, 66, ),
678 : /* 66 */ array(44, 46, 58, 59, 60, 61, 62, 63, 64, 65, 66, ),
679 : /* 67 */ array(1, 2, 3, 4, 5, 6, 7, 23, ),
680 : /* 68 */ array(3, 7, 23, 38, 70, 71, ),
681 : /* 69 */ array(7, 10, 11, 18, ),
682 : /* 70 */ array(7, 10, 11, 40, ),
683 : /* 71 */ array(7, 10, 40, ),
684 : /* 72 */ array(8, 15, 18, ),
685 : /* 73 */ array(8, 15, 18, ),
686 : /* 74 */ array(7, 10, ),
687 : /* 75 */ array(7, 10, ),
688 : /* 76 */ array(7, 10, ),
689 : /* 77 */ array(7, 10, ),
690 : /* 78 */ array(7, 10, ),
691 : /* 79 */ array(11, 13, ),
692 : /* 80 */ array(7, 10, ),
693 : /* 81 */ array(7, 10, ),
694 : /* 82 */ array(7, 10, ),
695 : /* 83 */ array(8, 15, ),
696 : /* 84 */ array(7, 10, ),
697 : /* 85 */ array(7, 10, ),
698 : /* 86 */ array(7, 10, ),
699 : /* 87 */ array(9, ),
700 : /* 88 */ array(13, ),
701 : /* 89 */ array(15, ),
702 : /* 90 */ array(15, ),
703 : /* 91 */ array(13, ),
704 : /* 92 */ array(15, ),
705 : /* 93 */ array(15, ),
706 : /* 94 */ array(13, ),
707 : /* 95 */ array(17, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 67, 68, 69, ),
708 : /* 96 */ array(29, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 67, 68, 69, ),
709 : /* 97 */ array(29, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 67, 68, 69, ),
710 : /* 98 */ array(8, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 67, 68, 69, ),
711 : /* 99 */ array(47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 67, 68, 69, ),
712 : /* 100 */ array(47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 67, 68, 69, ),
713 : /* 101 */ array(47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 67, 68, 69, ),
714 : /* 102 */ array(47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 67, 68, 69, ),
715 : /* 103 */ array(47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 67, 68, 69, ),
716 : /* 104 */ array(47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 67, 68, 69, ),
717 : /* 105 */ array(47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 67, 68, 69, ),
718 : /* 106 */ array(47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 67, 68, 69, ),
719 : /* 107 */ array(7, 8, 10, 22, ),
720 : /* 108 */ array(10, 12, 14, 16, ),
721 : /* 109 */ array(7, 8, 10, 22, ),
722 : /* 110 */ array(8, 27, 31, 32, ),
723 : /* 111 */ array(27, 31, 32, 43, ),
724 : /* 112 */ array(8, 20, 44, ),
725 : /* 113 */ array(7, 10, 40, ),
726 : /* 114 */ array(27, 31, 32, ),
727 : /* 115 */ array(7, 10, 11, ),
728 : /* 116 */ array(27, 31, 32, ),
729 : /* 117 */ array(7, 8, 10, ),
730 : /* 118 */ array(7, 8, 10, ),
731 : /* 119 */ array(8, 15, ),
732 : /* 120 */ array(8, 15, ),
733 : /* 121 */ array(8, 15, ),
734 : /* 122 */ array(8, 44, ),
735 : /* 123 */ array(8, 15, ),
736 : /* 124 */ array(8, 15, ),
737 : /* 125 */ array(7, 28, ),
738 : /* 126 */ array(26, 44, ),
739 : /* 127 */ array(8, 15, ),
740 : /* 128 */ array(8, 15, ),
741 : /* 129 */ array(25, 44, ),
742 : /* 130 */ array(8, 44, ),
743 : /* 131 */ array(29, 44, ),
744 : /* 132 */ array(9, 10, ),
745 : /* 133 */ array(8, 15, ),
746 : /* 134 */ array(34, 42, ),
747 : /* 135 */ array(8, 15, ),
748 : /* 136 */ array(8, 15, ),
749 : /* 137 */ array(34, 42, ),
750 : /* 138 */ array(34, 42, ),
751 : /* 139 */ array(8, 15, ),
752 : /* 140 */ array(26, 44, ),
753 : /* 141 */ array(8, 44, ),
754 : /* 142 */ array(34, 42, ),
755 : /* 143 */ array(8, 15, ),
756 : /* 144 */ array(8, 15, ),
757 : /* 145 */ array(8, 15, ),
758 : /* 146 */ array(8, 44, ),
759 : /* 147 */ array(8, 15, ),
760 : /* 148 */ array(34, 42, ),
761 : /* 149 */ array(44, ),
762 : /* 150 */ array(15, ),
763 : /* 151 */ array(44, ),
764 : /* 152 */ array(44, ),
765 : /* 153 */ array(15, ),
766 : /* 154 */ array(9, ),
767 : /* 155 */ array(28, ),
768 : /* 156 */ array(44, ),
769 : /* 157 */ array(13, ),
770 : /* 158 */ array(44, ),
771 : /* 159 */ array(44, ),
772 : /* 160 */ array(44, ),
773 : /* 161 */ array(44, ),
774 : /* 162 */ array(44, ),
775 : /* 163 */ array(13, ),
776 : /* 164 */ array(13, ),
777 : /* 165 */ array(26, ),
778 : /* 166 */ array(44, ),
779 : /* 167 */ array(13, ),
780 : /* 168 */ array(),
781 : /* 169 */ array(),
782 : /* 170 */ array(),
783 : /* 171 */ array(),
784 : /* 172 */ array(),
785 : /* 173 */ array(),
786 : /* 174 */ array(),
787 : /* 175 */ array(7, 9, 10, 24, 35, 36, ),
788 : /* 176 */ array(28, 34, 39, 43, ),
789 : /* 177 */ array(22, 28, 39, ),
790 : /* 178 */ array(11, 28, 39, ),
791 : /* 179 */ array(28, 39, 44, ),
792 : /* 180 */ array(11, 34, ),
793 : /* 181 */ array(10, 40, ),
794 : /* 182 */ array(25, 43, ),
795 : /* 183 */ array(28, 39, ),
796 : /* 184 */ array(8, 15, ),
797 : /* 185 */ array(28, 39, ),
798 : /* 186 */ array(28, 39, ),
799 : /* 187 */ array(10, 24, ),
800 : /* 188 */ array(11, 26, ),
801 : /* 189 */ array(28, 39, ),
802 : /* 190 */ array(17, 25, ),
803 : /* 191 */ array(21, ),
804 : /* 192 */ array(9, ),
805 : /* 193 */ array(9, ),
806 : /* 194 */ array(21, ),
807 : /* 195 */ array(9, ),
808 : /* 196 */ array(19, ),
809 : /* 197 */ array(4, ),
810 : /* 198 */ array(29, ),
811 : /* 199 */ array(28, ),
812 : /* 200 */ array(43, ),
813 : /* 201 */ array(3, ),
814 : /* 202 */ array(10, ),
815 : /* 203 */ array(11, ),
816 : /* 204 */ array(8, ),
817 : /* 205 */ array(8, ),
818 : /* 206 */ array(10, ),
819 : /* 207 */ array(3, ),
820 : /* 208 */ array(11, ),
821 : /* 209 */ array(15, ),
822 : /* 210 */ array(8, ),
823 : /* 211 */ array(15, ),
824 : /* 212 */ array(9, ),
825 : /* 213 */ array(8, ),
826 : /* 214 */ array(4, ),
827 : /* 215 */ array(29, ),
828 : /* 216 */ array(70, ),
829 : /* 217 */ array(9, ),
830 : /* 218 */ array(18, ),
831 : /* 219 */ array(41, ),
832 : /* 220 */ array(10, ),
833 : /* 221 */ array(10, ),
834 : /* 222 */ array(10, ),
835 : /* 223 */ array(30, ),
836 : /* 224 */ array(30, ),
837 : /* 225 */ array(10, ),
838 : /* 226 */ array(57, ),
839 : /* 227 */ array(41, ),
840 : /* 228 */ array(26, ),
841 : /* 229 */ array(22, ),
842 : /* 230 */ array(34, ),
843 : /* 231 */ array(10, ),
844 : /* 232 */ array(8, ),
845 : /* 233 */ array(10, ),
846 : /* 234 */ array(24, ),
847 : /* 235 */ array(29, ),
848 : /* 236 */ array(),
849 : /* 237 */ array(),
850 : /* 238 */ array(),
851 : /* 239 */ array(),
852 : /* 240 */ array(),
853 : /* 241 */ array(),
854 : /* 242 */ array(),
855 : /* 243 */ array(),
856 : /* 244 */ array(),
857 : /* 245 */ array(),
858 : /* 246 */ array(),
859 : /* 247 */ array(),
860 : /* 248 */ array(),
861 : /* 249 */ array(),
862 : /* 250 */ array(),
863 : /* 251 */ array(),
864 : /* 252 */ array(),
865 : /* 253 */ array(),
866 : /* 254 */ array(),
867 : /* 255 */ array(),
868 : /* 256 */ array(),
869 : /* 257 */ array(),
870 : /* 258 */ array(),
871 : /* 259 */ array(),
872 : /* 260 */ array(),
873 : /* 261 */ array(),
874 : /* 262 */ array(),
875 : /* 263 */ array(),
876 : /* 264 */ array(),
877 : /* 265 */ array(),
878 : /* 266 */ array(),
879 : /* 267 */ array(),
880 : /* 268 */ array(),
881 : /* 269 */ array(),
882 : /* 270 */ array(),
883 : /* 271 */ array(),
884 : /* 272 */ array(),
885 : /* 273 */ array(),
886 : /* 274 */ array(),
887 : /* 275 */ array(),
888 : /* 276 */ array(),
889 : /* 277 */ array(),
890 : /* 278 */ array(),
891 : /* 279 */ array(),
892 : /* 280 */ array(),
893 : /* 281 */ array(),
894 : /* 282 */ array(),
895 : /* 283 */ array(),
896 : /* 284 */ array(),
897 : /* 285 */ array(),
898 : /* 286 */ array(),
899 : /* 287 */ array(),
900 : /* 288 */ array(),
901 : /* 289 */ array(),
902 : /* 290 */ array(),
903 : /* 291 */ array(),
904 : /* 292 */ array(),
905 : /* 293 */ array(),
906 : /* 294 */ array(),
907 : /* 295 */ array(),
908 : /* 296 */ array(),
909 : /* 297 */ array(),
910 : /* 298 */ array(),
911 : /* 299 */ array(),
912 : /* 300 */ array(),
913 : /* 301 */ array(),
914 : /* 302 */ array(),
915 : /* 303 */ array(),
916 : /* 304 */ array(),
917 : /* 305 */ array(),
918 : /* 306 */ array(),
919 : /* 307 */ array(),
920 : /* 308 */ array(),
921 : /* 309 */ array(),
922 : /* 310 */ array(),
923 : /* 311 */ array(),
924 : /* 312 */ array(),
925 : /* 313 */ array(),
926 : /* 314 */ array(),
927 : /* 315 */ array(),
928 : /* 316 */ array(),
929 : /* 317 */ array(),
930 : /* 318 */ array(),
931 : /* 319 */ array(),
932 : /* 320 */ array(),
933 : /* 321 */ array(),
934 : /* 322 */ array(),
935 : /* 323 */ array(),
936 : /* 324 */ array(),
937 : /* 325 */ array(),
938 : /* 326 */ array(),
939 : /* 327 */ array(),
940 : /* 328 */ array(),
941 : /* 329 */ array(),
942 : /* 330 */ array(),
943 : /* 331 */ array(),
944 : /* 332 */ array(),
945 : /* 333 */ array(),
946 : /* 334 */ array(),
947 : /* 335 */ array(),
948 : /* 336 */ array(),
949 : /* 337 */ array(),
950 : /* 338 */ array(),
951 : /* 339 */ array(),
952 : /* 340 */ array(),
953 : /* 341 */ array(),
954 : /* 342 */ array(),
955 : /* 343 */ array(),
956 : /* 344 */ array(),
957 : /* 345 */ array(),
958 : /* 346 */ array(),
959 : /* 347 */ array(),
960 : /* 348 */ array(),
961 : /* 349 */ array(),
962 : /* 350 */ array(),
963 : /* 351 */ array(),
964 : /* 352 */ array(),
965 : /* 353 */ array(),
966 : /* 354 */ array(),
967 : /* 355 */ array(),
968 : /* 356 */ array(),
969 : /* 357 */ array(),
970 : /* 358 */ array(),
971 : /* 359 */ array(),
972 : /* 360 */ array(),
973 : /* 361 */ array(),
974 : /* 362 */ array(),
975 : /* 363 */ array(),
976 : );
977 : static public $yy_default = array(
978 : /* 0 */ 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
979 : /* 10 */ 546, 546, 546, 532, 546, 546, 490, 546, 546, 490,
980 : /* 20 */ 546, 546, 490, 490, 546, 546, 546, 546, 546, 546,
981 : /* 30 */ 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
982 : /* 40 */ 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
983 : /* 50 */ 546, 546, 546, 546, 546, 452, 412, 412, 412, 412,
984 : /* 60 */ 546, 412, 546, 412, 500, 500, 500, 364, 546, 546,
985 : /* 70 */ 462, 462, 435, 435, 546, 546, 546, 546, 546, 455,
986 : /* 80 */ 546, 546, 546, 426, 546, 546, 546, 546, 448, 412,
987 : /* 90 */ 412, 455, 412, 412, 447, 546, 546, 546, 546, 509,
988 : /* 100 */ 506, 510, 513, 504, 514, 505, 498, 546, 546, 546,
989 : /* 110 */ 546, 546, 546, 463, 423, 546, 495, 546, 546, 546,
990 : /* 120 */ 546, 546, 546, 546, 546, 462, 546, 546, 546, 489,
991 : /* 130 */ 546, 546, 546, 546, 460, 546, 546, 481, 482, 546,
992 : /* 140 */ 546, 546, 483, 546, 546, 546, 546, 546, 484, 414,
993 : /* 150 */ 545, 431, 394, 545, 546, 462, 430, 450, 534, 533,
994 : /* 160 */ 535, 421, 418, 478, 453, 425, 501, 449, 494, 462,
995 : /* 170 */ 494, 494, 462, 462, 494, 546, 546, 422, 417, 413,
996 : /* 180 */ 438, 546, 546, 496, 426, 422, 546, 546, 476, 515,
997 : /* 190 */ 546, 546, 546, 546, 546, 546, 419, 546, 546, 451,
998 : /* 200 */ 546, 546, 546, 546, 546, 546, 546, 546, 417, 546,
999 : /* 210 */ 546, 546, 546, 546, 546, 546, 546, 546, 435, 546,
1000 : /* 220 */ 546, 546, 546, 546, 443, 546, 426, 546, 476, 426,
1001 : /* 230 */ 438, 546, 426, 546, 546, 546, 486, 487, 471, 369,
1002 : /* 240 */ 491, 473, 529, 472, 432, 433, 434, 537, 446, 539,
1003 : /* 250 */ 542, 543, 518, 370, 530, 477, 531, 443, 502, 517,
1004 : /* 260 */ 503, 470, 468, 403, 404, 405, 381, 409, 382, 541,
1005 : /* 270 */ 406, 380, 366, 365, 367, 378, 379, 416, 377, 485,
1006 : /* 280 */ 469, 492, 429, 488, 538, 466, 467, 444, 459, 376,
1007 : /* 290 */ 540, 454, 368, 458, 457, 465, 397, 475, 426, 476,
1008 : /* 300 */ 526, 399, 427, 527, 400, 512, 411, 508, 479, 401,
1009 : /* 310 */ 493, 511, 528, 398, 385, 456, 384, 390, 387, 388,
1010 : /* 320 */ 480, 389, 436, 499, 464, 461, 437, 383, 386, 507,
1011 : /* 330 */ 408, 523, 522, 374, 524, 420, 544, 525, 521, 396,
1012 : /* 340 */ 536, 371, 445, 372, 373, 520, 395, 375, 439, 440,
1013 : /* 350 */ 497, 407, 392, 428, 391, 402, 441, 516, 393, 410,
1014 : /* 360 */ 474, 442, 424, 519,
1015 : );
1016 : /* The next thing included is series of defines which control
1017 : ** various aspects of the generated parser.
1018 : ** self::YYNOCODE is a number which corresponds
1019 : ** to no legal terminal or nonterminal number. This
1020 : ** number is used to fill in empty slots of the hash
1021 : ** table.
1022 : ** self::YYFALLBACK If defined, this indicates that one or more tokens
1023 : ** have fall-back values which should be used if the
1024 : ** original value of the token will not parse.
1025 : ** self::YYSTACKDEPTH is the maximum depth of the parser's stack.
1026 : ** self::YYNSTATE the combined number of states.
1027 : ** self::YYNRULE the number of rules in the grammar
1028 : ** self::YYERRORSYMBOL is the code number of the error symbol. If not
1029 : ** defined, then do no error processing.
1030 : */
1031 : const YYNOCODE = 114;
1032 : const YYSTACKDEPTH = 100;
1033 : const YYNSTATE = 364;
1034 : const YYNRULE = 182;
1035 : const YYERRORSYMBOL = 72;
1036 : const YYERRSYMDT = 'yy0';
1037 : const YYFALLBACK = 0;
1038 : /** The next table maps tokens into fallback tokens. If a construct
1039 : * like the following:
1040 : *
1041 : * %fallback ID X Y Z.
1042 : *
1043 : * appears in the grammer, then ID becomes a fallback token for X, Y,
1044 : * and Z. Whenever one of the tokens X, Y, or Z is input to the parser
1045 : * but it does not parse, the type of the token is changed to ID and
1046 : * the parse is retried before an error is thrown.
1047 : */
1048 : static public $yyFallback = array(
1049 : );
1050 : /**
1051 : * Turn parser tracing on by giving a stream to which to write the trace
1052 : * and a prompt to preface each trace message. Tracing is turned off
1053 : * by making either argument NULL
1054 : *
1055 : * Inputs:
1056 : *
1057 : * - A stream resource to which trace output should be written.
1058 : * If NULL, then tracing is turned off.
1059 : * - A prefix string written at the beginning of every
1060 : * line of trace output. If NULL, then tracing is
1061 : * turned off.
1062 : *
1063 : * Outputs:
1064 : *
1065 : * - None.
1066 : * @param resource
1067 : * @param string
1068 : */
1069 : static function Trace($TraceFILE, $zTracePrompt)
1070 : {
1071 0 : if (!$TraceFILE) {
1072 0 : $zTracePrompt = 0;
1073 0 : } elseif (!$zTracePrompt) {
1074 0 : $TraceFILE = 0;
1075 0 : }
1076 0 : self::$yyTraceFILE = $TraceFILE;
1077 0 : self::$yyTracePrompt = $zTracePrompt;
1078 0 : }
1079 :
1080 : /**
1081 : * Output debug information to output (php://output stream)
1082 : */
1083 : static function PrintTrace()
1084 : {
1085 0 : self::$yyTraceFILE = fopen('php://output', 'w');
1086 0 : self::$yyTracePrompt = '<br>';
1087 0 : }
1088 :
1089 : /**
1090 : * @var resource|0
1091 : */
1092 : static public $yyTraceFILE;
1093 : /**
1094 : * String to prepend to debug output
1095 : * @var string|0
1096 : */
1097 : static public $yyTracePrompt;
1098 : /**
1099 : * @var int
1100 : */
1101 : public $yyidx; /* Index of top element in stack */
1102 : /**
1103 : * @var int
1104 : */
1105 : public $yyerrcnt; /* Shifts left before out of the error */
1106 : /**
1107 : * @var array
1108 : */
1109 : public $yystack = array(); /* The parser's stack */
1110 :
1111 : /**
1112 : * For tracing shifts, the names of all terminals and nonterminals
1113 : * are required. The following table supplies these names
1114 : * @var array
1115 : */
1116 : public $yyTokenName = array(
1117 : '$', 'COMMENT', 'PHP', 'OTHER',
1118 : 'SHORTTAGEND', 'SHORTTAGSTART', 'XML', 'LDEL',
1119 : 'RDEL', 'DOLLAR', 'ID', 'EQUAL',
1120 : 'FOREACH', 'PTR', 'IF', 'SPACE',
1121 : 'FOR', 'SEMICOLON', 'INCDEC', 'TO',
1122 : 'STEP', 'AS', 'APTR', 'LDELSLASH',
1123 : 'INTEGER', 'COMMA', 'COLON', 'UNIMATH',
1124 : 'OPENP', 'CLOSEP', 'QMARK', 'MATH',
1125 : 'ANDSYM', 'TYPECAST', 'DOT', 'BOOLEAN',
1126 : 'NULL', 'SINGLEQUOTESTRING', 'QUOTE', 'DOUBLECOLON',
1127 : 'AT', 'HATCH', 'OPENB', 'CLOSEB',
1128 : 'VERT', 'NOT', 'ISIN', 'ISDIVBY',
1129 : 'ISNOTDIVBY', 'ISEVEN', 'ISNOTEVEN', 'ISEVENBY',
1130 : 'ISNOTEVENBY', 'ISODD', 'ISNOTODD', 'ISODDBY',
1131 : 'ISNOTODDBY', 'INSTANCEOF', 'EQUALS', 'NOTEQUALS',
1132 : 'GREATERTHAN', 'LESSTHAN', 'GREATEREQUAL', 'LESSEQUAL',
1133 : 'IDENTITY', 'NONEIDENTITY', 'MOD', 'LAND',
1134 : 'LOR', 'LXOR', 'BACKTICK', 'DOLLARID',
1135 : 'error', 'start', 'template', 'template_element',
1136 : 'smartytag', 'value', 'attributes', 'variable',
1137 : 'expr', 'ternary', 'varindexed', 'modifier',
1138 : 'modparameters', 'ifexprs', 'statement', 'statements',
1139 : 'optspace', 'varvar', 'foraction', 'array',
1140 : 'specialclose', 'attribute', 'exprs', 'math',
1141 : 'function', 'doublequoted', 'method', 'params',
1142 : 'objectchain', 'arrayindex', 'object', 'indexdef',
1143 : 'varvarele', 'objectelement', 'modparameter', 'ifexpr',
1144 : 'ifcond', 'lop', 'arrayelements', 'arrayelement',
1145 : 'doublequotedcontent',
1146 : );
1147 :
1148 : /**
1149 : * For tracing reduce actions, the names of all rules are required.
1150 : * @var array
1151 : */
1152 : static public $yyRuleName = array(
1153 : /* 0 */ "start ::= template",
1154 : /* 1 */ "template ::= template_element",
1155 : /* 2 */ "template ::= template template_element",
1156 : /* 3 */ "template_element ::= smartytag",
1157 : /* 4 */ "template_element ::= COMMENT",
1158 : /* 5 */ "template_element ::= PHP OTHER SHORTTAGEND",
1159 : /* 6 */ "template_element ::= SHORTTAGSTART OTHER SHORTTAGEND",
1160 : /* 7 */ "template_element ::= XML",
1161 : /* 8 */ "template_element ::= SHORTTAGEND",
1162 : /* 9 */ "template_element ::= OTHER",
1163 : /* 10 */ "smartytag ::= LDEL value RDEL",
1164 : /* 11 */ "smartytag ::= LDEL value attributes RDEL",
1165 : /* 12 */ "smartytag ::= LDEL variable attributes RDEL",
1166 : /* 13 */ "smartytag ::= LDEL expr attributes RDEL",
1167 : /* 14 */ "smartytag ::= LDEL ternary attributes RDEL",
1168 : /* 15 */ "smartytag ::= LDEL DOLLAR ID EQUAL value RDEL",
1169 : /* 16 */ "smartytag ::= LDEL DOLLAR ID EQUAL expr RDEL",
1170 : /* 17 */ "smartytag ::= LDEL DOLLAR ID EQUAL expr attributes RDEL",
1171 : /* 18 */ "smartytag ::= LDEL DOLLAR ID EQUAL ternary attributes RDEL",
1172 : /* 19 */ "smartytag ::= LDEL varindexed EQUAL expr attributes RDEL",
1173 : /* 20 */ "smartytag ::= LDEL varindexed EQUAL ternary attributes RDEL",
1174 : /* 21 */ "smartytag ::= LDEL ID attributes RDEL",
1175 : /* 22 */ "smartytag ::= LDEL FOREACH attributes RDEL",
1176 : /* 23 */ "smartytag ::= LDEL ID RDEL",
1177 : /* 24 */ "smartytag ::= LDEL ID PTR ID attributes RDEL",
1178 : /* 25 */ "smartytag ::= LDEL ID modifier modparameters attributes RDEL",
1179 : /* 26 */ "smartytag ::= LDEL ID PTR ID modifier modparameters attributes RDEL",
1180 : /* 27 */ "smartytag ::= LDEL IF SPACE ifexprs RDEL",
1181 : /* 28 */ "smartytag ::= LDEL IF SPACE statement RDEL",
1182 : /* 29 */ "smartytag ::= LDEL FOR SPACE statements SEMICOLON optspace ifexprs SEMICOLON optspace DOLLAR varvar foraction RDEL",
1183 : /* 30 */ "foraction ::= EQUAL expr",
1184 : /* 31 */ "foraction ::= INCDEC",
1185 : /* 32 */ "smartytag ::= LDEL FOR SPACE statement TO expr RDEL",
1186 : /* 33 */ "smartytag ::= LDEL FOR SPACE statement TO expr STEP expr RDEL",
1187 : /* 34 */ "smartytag ::= LDEL FOREACH SPACE value AS DOLLAR varvar RDEL",
1188 : /* 35 */ "smartytag ::= LDEL FOREACH SPACE value AS DOLLAR varvar APTR DOLLAR varvar RDEL",
1189 : /* 36 */ "smartytag ::= LDEL FOREACH SPACE array AS DOLLAR varvar RDEL",
1190 : /* 37 */ "smartytag ::= LDEL FOREACH SPACE array AS DOLLAR varvar APTR DOLLAR varvar RDEL",
1191 : /* 38 */ "smartytag ::= LDELSLASH ID RDEL",
1192 : /* 39 */ "smartytag ::= LDELSLASH specialclose RDEL",
1193 : /* 40 */ "specialclose ::= IF",
1194 : /* 41 */ "specialclose ::= FOR",
1195 : /* 42 */ "specialclose ::= FOREACH",
1196 : /* 43 */ "smartytag ::= LDELSLASH ID attributes RDEL",
1197 : /* 44 */ "smartytag ::= LDELSLASH ID modifier modparameters attributes RDEL",
1198 : /* 45 */ "smartytag ::= LDELSLASH ID PTR ID RDEL",
1199 : /* 46 */ "attributes ::= attributes attribute",
1200 : /* 47 */ "attributes ::= attribute",
1201 : /* 48 */ "attributes ::=",
1202 : /* 49 */ "attribute ::= SPACE ID EQUAL ID",
1203 : /* 50 */ "attribute ::= SPACE ID EQUAL expr",
1204 : /* 51 */ "attribute ::= SPACE ID EQUAL value",
1205 : /* 52 */ "attribute ::= SPACE ID EQUAL ternary",
1206 : /* 53 */ "attribute ::= SPACE ID",
1207 : /* 54 */ "attribute ::= SPACE INTEGER EQUAL expr",
1208 : /* 55 */ "statements ::= statement",
1209 : /* 56 */ "statements ::= statements COMMA statement",
1210 : /* 57 */ "statement ::= DOLLAR varvar EQUAL expr",
1211 : /* 58 */ "expr ::= ID",
1212 : /* 59 */ "expr ::= exprs",
1213 : /* 60 */ "expr ::= DOLLAR ID COLON ID",
1214 : /* 61 */ "expr ::= expr modifier modparameters",
1215 : /* 62 */ "exprs ::= value",
1216 : /* 63 */ "exprs ::= UNIMATH value",
1217 : /* 64 */ "exprs ::= exprs math value",
1218 : /* 65 */ "exprs ::= array",
1219 : /* 66 */ "ternary ::= OPENP ifexprs CLOSEP QMARK expr COLON expr",
1220 : /* 67 */ "ternary ::= OPENP expr CLOSEP QMARK expr COLON expr",
1221 : /* 68 */ "math ::= UNIMATH",
1222 : /* 69 */ "math ::= MATH",
1223 : /* 70 */ "math ::= ANDSYM",
1224 : /* 71 */ "value ::= variable",
1225 : /* 72 */ "value ::= TYPECAST variable",
1226 : /* 73 */ "value ::= variable INCDEC",
1227 : /* 74 */ "value ::= INTEGER",
1228 : /* 75 */ "value ::= INTEGER DOT INTEGER",
1229 : /* 76 */ "value ::= BOOLEAN",
1230 : /* 77 */ "value ::= NULL",
1231 : /* 78 */ "value ::= function",
1232 : /* 79 */ "value ::= OPENP expr CLOSEP",
1233 : /* 80 */ "value ::= SINGLEQUOTESTRING",
1234 : /* 81 */ "value ::= QUOTE doublequoted QUOTE",
1235 : /* 82 */ "value ::= QUOTE QUOTE",
1236 : /* 83 */ "value ::= ID DOUBLECOLON method",
1237 : /* 84 */ "value ::= ID DOUBLECOLON DOLLAR ID OPENP params CLOSEP",
1238 : /* 85 */ "value ::= ID DOUBLECOLON method objectchain",
1239 : /* 86 */ "value ::= ID DOUBLECOLON DOLLAR ID OPENP params CLOSEP objectchain",
1240 : /* 87 */ "value ::= ID DOUBLECOLON ID",
1241 : /* 88 */ "value ::= ID DOUBLECOLON DOLLAR ID arrayindex",
1242 : /* 89 */ "value ::= ID DOUBLECOLON DOLLAR ID arrayindex objectchain",
1243 : /* 90 */ "value ::= smartytag",
1244 : /* 91 */ "variable ::= varindexed",
1245 : /* 92 */ "variable ::= DOLLAR varvar AT ID",
1246 : /* 93 */ "variable ::= object",
1247 : /* 94 */ "variable ::= HATCH ID HATCH",
1248 : /* 95 */ "variable ::= HATCH variable HATCH",
1249 : /* 96 */ "varindexed ::= DOLLAR varvar arrayindex",
1250 : /* 97 */ "arrayindex ::= arrayindex indexdef",
1251 : /* 98 */ "arrayindex ::=",
1252 : /* 99 */ "indexdef ::= DOT DOLLAR varvar",
1253 : /* 100 */ "indexdef ::= DOT DOLLAR varvar AT ID",
1254 : /* 101 */ "indexdef ::= DOT ID",
1255 : /* 102 */ "indexdef ::= DOT BOOLEAN",
1256 : /* 103 */ "indexdef ::= DOT NULL",
1257 : /* 104 */ "indexdef ::= DOT INTEGER",
1258 : /* 105 */ "indexdef ::= DOT LDEL exprs RDEL",
1259 : /* 106 */ "indexdef ::= OPENB ID CLOSEB",
1260 : /* 107 */ "indexdef ::= OPENB ID DOT ID CLOSEB",
1261 : /* 108 */ "indexdef ::= OPENB exprs CLOSEB",
1262 : /* 109 */ "indexdef ::= OPENB CLOSEB",
1263 : /* 110 */ "varvar ::= varvarele",
1264 : /* 111 */ "varvar ::= varvar varvarele",
1265 : /* 112 */ "varvarele ::= ID",
1266 : /* 113 */ "varvarele ::= LDEL expr RDEL",
1267 : /* 114 */ "object ::= varindexed objectchain",
1268 : /* 115 */ "objectchain ::= objectelement",
1269 : /* 116 */ "objectchain ::= objectchain objectelement",
1270 : /* 117 */ "objectelement ::= PTR ID arrayindex",
1271 : /* 118 */ "objectelement ::= PTR variable arrayindex",
1272 : /* 119 */ "objectelement ::= PTR LDEL expr RDEL arrayindex",
1273 : /* 120 */ "objectelement ::= PTR ID LDEL expr RDEL arrayindex",
1274 : /* 121 */ "objectelement ::= PTR method",
1275 : /* 122 */ "function ::= ID OPENP params CLOSEP",
1276 : /* 123 */ "method ::= ID OPENP params CLOSEP",
1277 : /* 124 */ "params ::= expr COMMA params",
1278 : /* 125 */ "params ::= expr",
1279 : /* 126 */ "params ::=",
1280 : /* 127 */ "modifier ::= VERT AT ID",
1281 : /* 128 */ "modifier ::= VERT ID",
1282 : /* 129 */ "modparameters ::= modparameters modparameter",
1283 : /* 130 */ "modparameters ::=",
1284 : /* 131 */ "modparameter ::= COLON exprs",
1285 : /* 132 */ "modparameter ::= COLON ID",
1286 : /* 133 */ "ifexprs ::= ifexpr",
1287 : /* 134 */ "ifexprs ::= NOT ifexprs",
1288 : /* 135 */ "ifexprs ::= OPENP ifexprs CLOSEP",
1289 : /* 136 */ "ifexpr ::= expr",
1290 : /* 137 */ "ifexpr ::= expr ifcond expr",
1291 : /* 138 */ "ifexpr ::= expr ISIN array",
1292 : /* 139 */ "ifexpr ::= expr ISIN value",
1293 : /* 140 */ "ifexpr ::= ifexprs lop ifexprs",
1294 : /* 141 */ "ifexpr ::= ifexprs ISDIVBY ifexprs",
1295 : /* 142 */ "ifexpr ::= ifexprs ISNOTDIVBY ifexprs",
1296 : /* 143 */ "ifexpr ::= ifexprs ISEVEN",
1297 : /* 144 */ "ifexpr ::= ifexprs ISNOTEVEN",
1298 : /* 145 */ "ifexpr ::= ifexprs ISEVENBY ifexprs",
1299 : /* 146 */ "ifexpr ::= ifexprs ISNOTEVENBY ifexprs",
1300 : /* 147 */ "ifexpr ::= ifexprs ISODD",
1301 : /* 148 */ "ifexpr ::= ifexprs ISNOTODD",
1302 : /* 149 */ "ifexpr ::= ifexprs ISODDBY ifexprs",
1303 : /* 150 */ "ifexpr ::= ifexprs ISNOTODDBY ifexprs",
1304 : /* 151 */ "ifexpr ::= value INSTANCEOF ID",
1305 : /* 152 */ "ifexpr ::= value INSTANCEOF value",
1306 : /* 153 */ "ifcond ::= EQUALS",
1307 : /* 154 */ "ifcond ::= NOTEQUALS",
1308 : /* 155 */ "ifcond ::= GREATERTHAN",
1309 : /* 156 */ "ifcond ::= LESSTHAN",
1310 : /* 157 */ "ifcond ::= GREATEREQUAL",
1311 : /* 158 */ "ifcond ::= LESSEQUAL",
1312 : /* 159 */ "ifcond ::= IDENTITY",
1313 : /* 160 */ "ifcond ::= NONEIDENTITY",
1314 : /* 161 */ "ifcond ::= MOD",
1315 : /* 162 */ "lop ::= LAND",
1316 : /* 163 */ "lop ::= LOR",
1317 : /* 164 */ "lop ::= LXOR",
1318 : /* 165 */ "array ::= OPENB arrayelements CLOSEB",
1319 : /* 166 */ "arrayelements ::= arrayelement",
1320 : /* 167 */ "arrayelements ::= arrayelements COMMA arrayelement",
1321 : /* 168 */ "arrayelements ::=",
1322 : /* 169 */ "arrayelement ::= value APTR expr",
1323 : /* 170 */ "arrayelement ::= ID APTR expr",
1324 : /* 171 */ "arrayelement ::= expr",
1325 : /* 172 */ "doublequoted ::= doublequoted doublequotedcontent",
1326 : /* 173 */ "doublequoted ::= doublequotedcontent",
1327 : /* 174 */ "doublequotedcontent ::= BACKTICK variable BACKTICK",
1328 : /* 175 */ "doublequotedcontent ::= DOLLARID",
1329 : /* 176 */ "doublequotedcontent ::= LDEL variable RDEL",
1330 : /* 177 */ "doublequotedcontent ::= LDEL expr RDEL",
1331 : /* 178 */ "doublequotedcontent ::= smartytag",
1332 : /* 179 */ "doublequotedcontent ::= OTHER",
1333 : /* 180 */ "optspace ::= SPACE",
1334 : /* 181 */ "optspace ::=",
1335 : );
1336 :
1337 : /**
1338 : * This function returns the symbolic name associated with a token
1339 : * value.
1340 : * @param int
1341 : * @return string
1342 : */
1343 : function tokenName($tokenType)
1344 : {
1345 0 : if ($tokenType === 0) {
1346 0 : return 'End of Input';
1347 : }
1348 0 : if ($tokenType > 0 && $tokenType < count($this->yyTokenName)) {
1349 0 : return $this->yyTokenName[$tokenType];
1350 : } else {
1351 0 : return "Unknown";
1352 : }
1353 : }
1354 :
1355 : /**
1356 : * The following function deletes the value associated with a
1357 : * symbol. The symbol can be either a terminal or nonterminal.
1358 : * @param int the symbol code
1359 : * @param mixed the symbol's value
1360 : */
1361 : static function yy_destructor($yymajor, $yypminor)
1362 : {
1363 : switch ($yymajor) {
1364 : /* Here is inserted the actions which take place when a
1365 : ** terminal or non-terminal is destroyed. This can happen
1366 : ** when the symbol is popped from the stack during a
1367 : ** reduce or during error processing or when a parser is
1368 : ** being destroyed before it is finished parsing.
1369 : **
1370 : ** Note: during a reduce, the only symbols destroyed are those
1371 : ** which appear on the RHS of the rule, but which are not used
1372 : ** inside the C code.
1373 : */
1374 391 : default: break; /* If no destructor action specified: do nothing */
1375 391 : }
1376 391 : }
1377 :
1378 : /**
1379 : * Pop the parser's stack once.
1380 : *
1381 : * If there is a destructor routine associated with the token which
1382 : * is popped from the stack, then call it.
1383 : *
1384 : * Return the major token number for the symbol popped.
1385 : * @param TP_yyParser
1386 : * @return int
1387 : */
1388 : function yy_pop_parser_stack()
1389 : {
1390 391 : if (!count($this->yystack)) {
1391 0 : return;
1392 : }
1393 391 : $yytos = array_pop($this->yystack);
1394 391 : if (self::$yyTraceFILE && $this->yyidx >= 0) {
1395 0 : fwrite(self::$yyTraceFILE,
1396 0 : self::$yyTracePrompt . 'Popping ' . $this->yyTokenName[$yytos->major] .
1397 0 : "\n");
1398 0 : }
1399 391 : $yymajor = $yytos->major;
1400 391 : self::yy_destructor($yymajor, $yytos->minor);
1401 391 : $this->yyidx--;
1402 391 : return $yymajor;
1403 : }
1404 :
1405 : /**
1406 : * Deallocate and destroy a parser. Destructors are all called for
1407 : * all stack elements before shutting the parser down.
1408 : */
1409 : function __destruct()
1410 : {
1411 2 : while ($this->yyidx >= 0) {
1412 2 : $this->yy_pop_parser_stack();
1413 2 : }
1414 2 : if (is_resource(self::$yyTraceFILE)) {
1415 0 : fclose(self::$yyTraceFILE);
1416 0 : }
1417 2 : }
1418 :
1419 : /**
1420 : * Based on the current state and parser stack, get a list of all
1421 : * possible lookahead tokens
1422 : * @param int
1423 : * @return array
1424 : */
1425 : function yy_get_expected_tokens($token)
1426 : {
1427 1 : $state = $this->yystack[$this->yyidx]->stateno;
1428 1 : $expected = self::$yyExpectedTokens[$state];
1429 1 : if (in_array($token, self::$yyExpectedTokens[$state], true)) {
1430 0 : return $expected;
1431 : }
1432 1 : $stack = $this->yystack;
1433 1 : $yyidx = $this->yyidx;
1434 : do {
1435 1 : $yyact = $this->yy_find_shift_action($token);
1436 1 : if ($yyact >= self::YYNSTATE && $yyact < self::YYNSTATE + self::YYNRULE) {
1437 : // reduce action
1438 0 : $done = 0;
1439 : do {
1440 0 : if ($done++ == 100) {
1441 0 : $this->yyidx = $yyidx;
1442 0 : $this->yystack = $stack;
1443 : // too much recursion prevents proper detection
1444 : // so give up
1445 0 : return array_unique($expected);
1446 : }
1447 0 : $yyruleno = $yyact - self::YYNSTATE;
1448 0 : $this->yyidx -= self::$yyRuleInfo[$yyruleno]['rhs'];
1449 0 : $nextstate = $this->yy_find_reduce_action(
1450 0 : $this->yystack[$this->yyidx]->stateno,
1451 0 : self::$yyRuleInfo[$yyruleno]['lhs']);
1452 0 : if (isset(self::$yyExpectedTokens[$nextstate])) {
1453 0 : $expected += self::$yyExpectedTokens[$nextstate];
1454 0 : if (in_array($token,
1455 0 : self::$yyExpectedTokens[$nextstate], true)) {
1456 0 : $this->yyidx = $yyidx;
1457 0 : $this->yystack = $stack;
1458 0 : return array_unique($expected);
1459 : }
1460 0 : }
1461 0 : if ($nextstate < self::YYNSTATE) {
1462 : // we need to shift a non-terminal
1463 0 : $this->yyidx++;
1464 0 : $x = new TP_yyStackEntry;
1465 0 : $x->stateno = $nextstate;
1466 0 : $x->major = self::$yyRuleInfo[$yyruleno]['lhs'];
1467 0 : $this->yystack[$this->yyidx] = $x;
1468 0 : continue 2;
1469 0 : } elseif ($nextstate == self::YYNSTATE + self::YYNRULE + 1) {
1470 0 : $this->yyidx = $yyidx;
1471 0 : $this->yystack = $stack;
1472 : // the last token was just ignored, we can't accept
1473 : // by ignoring input, this is in essence ignoring a
1474 : // syntax error!
1475 0 : return array_unique($expected);
1476 0 : } elseif ($nextstate === self::YY_NO_ACTION) {
1477 0 : $this->yyidx = $yyidx;
1478 0 : $this->yystack = $stack;
1479 : // input accepted, but not shifted (I guess)
1480 0 : return $expected;
1481 : } else {
1482 0 : $yyact = $nextstate;
1483 : }
1484 0 : } while (true);
1485 0 : }
1486 1 : break;
1487 0 : } while (true);
1488 1 : return array_unique($expected);
1489 : }
1490 :
1491 : /**
1492 : * Based on the parser state and current parser stack, determine whether
1493 : * the lookahead token is possible.
1494 : *
1495 : * The parser will convert the token value to an error token if not. This
1496 : * catches some unusual edge cases where the parser would fail.
1497 : * @param int
1498 : * @return bool
1499 : */
1500 : function yy_is_expected_token($token)
1501 : {
1502 403 : if ($token === 0) {
1503 397 : return true; // 0 is not part of this
1504 : }
1505 403 : $state = $this->yystack[$this->yyidx]->stateno;
1506 403 : if (in_array($token, self::$yyExpectedTokens[$state], true)) {
1507 403 : return true;
1508 : }
1509 379 : $stack = $this->yystack;
1510 379 : $yyidx = $this->yyidx;
1511 : do {
1512 379 : $yyact = $this->yy_find_shift_action($token);
1513 379 : if ($yyact >= self::YYNSTATE && $yyact < self::YYNSTATE + self::YYNRULE) {
1514 : // reduce action
1515 378 : $done = 0;
1516 : do {
1517 378 : if ($done++ == 100) {
1518 0 : $this->yyidx = $yyidx;
1519 0 : $this->yystack = $stack;
1520 : // too much recursion prevents proper detection
1521 : // so give up
1522 0 : return true;
1523 : }
1524 378 : $yyruleno = $yyact - self::YYNSTATE;
1525 378 : $this->yyidx -= self::$yyRuleInfo[$yyruleno]['rhs'];
1526 378 : $nextstate = $this->yy_find_reduce_action(
1527 378 : $this->yystack[$this->yyidx]->stateno,
1528 378 : self::$yyRuleInfo[$yyruleno]['lhs']);
1529 378 : if (isset(self::$yyExpectedTokens[$nextstate]) &&
1530 378 : in_array($token, self::$yyExpectedTokens[$nextstate], true)) {
1531 378 : $this->yyidx = $yyidx;
1532 378 : $this->yystack = $stack;
1533 378 : return true;
1534 : }
1535 365 : if ($nextstate < self::YYNSTATE) {
1536 : // we need to shift a non-terminal
1537 365 : $this->yyidx++;
1538 365 : $x = new TP_yyStackEntry;
1539 365 : $x->stateno = $nextstate;
1540 365 : $x->major = self::$yyRuleInfo[$yyruleno]['lhs'];
1541 365 : $this->yystack[$this->yyidx] = $x;
1542 365 : continue 2;
1543 0 : } elseif ($nextstate == self::YYNSTATE + self::YYNRULE + 1) {
1544 0 : $this->yyidx = $yyidx;
1545 0 : $this->yystack = $stack;
1546 0 : if (!$token) {
1547 : // end of input: this is valid
1548 0 : return true;
1549 : }
1550 : // the last token was just ignored, we can't accept
1551 : // by ignoring input, this is in essence ignoring a
1552 : // syntax error!
1553 0 : return false;
1554 0 : } elseif ($nextstate === self::YY_NO_ACTION) {
1555 0 : $this->yyidx = $yyidx;
1556 0 : $this->yystack = $stack;
1557 : // input accepted, but not shifted (I guess)
1558 0 : return true;
1559 : } else {
1560 0 : $yyact = $nextstate;
1561 : }
1562 0 : } while (true);
1563 0 : }
1564 1 : break;
1565 0 : } while (true);
1566 1 : $this->yyidx = $yyidx;
1567 1 : $this->yystack = $stack;
1568 1 : return true;
1569 : }
1570 :
1571 : /**
1572 : * Find the appropriate action for a parser given the terminal
1573 : * look-ahead token iLookAhead.
1574 : *
1575 : * If the look-ahead token is YYNOCODE, then check to see if the action is
1576 : * independent of the look-ahead. If it is, return the action, otherwise
1577 : * return YY_NO_ACTION.
1578 : * @param int The look-ahead token
1579 : */
1580 : function yy_find_shift_action($iLookAhead)
1581 : {
1582 403 : $stateno = $this->yystack[$this->yyidx]->stateno;
1583 :
1584 : /* if ($this->yyidx < 0) return self::YY_NO_ACTION; */
1585 403 : if (!isset(self::$yy_shift_ofst[$stateno])) {
1586 : // no shift actions
1587 402 : return self::$yy_default[$stateno];
1588 : }
1589 403 : $i = self::$yy_shift_ofst[$stateno];
1590 403 : if ($i === self::YY_SHIFT_USE_DFLT) {
1591 17 : return self::$yy_default[$stateno];
1592 : }
1593 403 : if ($iLookAhead == self::YYNOCODE) {
1594 0 : return self::YY_NO_ACTION;
1595 : }
1596 403 : $i += $iLookAhead;
1597 403 : if ($i < 0 || $i >= self::YY_SZ_ACTTAB ||
1598 403 : self::$yy_lookahead[$i] != $iLookAhead) {
1599 399 : if (count(self::$yyFallback) && $iLookAhead < count(self::$yyFallback)
1600 399 : && ($iFallback = self::$yyFallback[$iLookAhead]) != 0) {
1601 0 : if (self::$yyTraceFILE) {
1602 0 : fwrite(self::$yyTraceFILE, self::$yyTracePrompt . "FALLBACK " .
1603 0 : $this->yyTokenName[$iLookAhead] . " => " .
1604 0 : $this->yyTokenName[$iFallback] . "\n");
1605 0 : }
1606 0 : return $this->yy_find_shift_action($iFallback);
1607 : }
1608 399 : return self::$yy_default[$stateno];
1609 : } else {
1610 403 : return self::$yy_action[$i];
1611 : }
1612 : }
1613 :
1614 : /**
1615 : * Find the appropriate action for a parser given the non-terminal
1616 : * look-ahead token $iLookAhead.
1617 : *
1618 : * If the look-ahead token is self::YYNOCODE, then check to see if the action is
1619 : * independent of the look-ahead. If it is, return the action, otherwise
1620 : * return self::YY_NO_ACTION.
1621 : * @param int Current state number
1622 : * @param int The look-ahead token
1623 : */
1624 : function yy_find_reduce_action($stateno, $iLookAhead)
1625 : {
1626 : /* $stateno = $this->yystack[$this->yyidx]->stateno; */
1627 :
1628 399 : if (!isset(self::$yy_reduce_ofst[$stateno])) {
1629 0 : return self::$yy_default[$stateno];
1630 : }
1631 399 : $i = self::$yy_reduce_ofst[$stateno];
1632 399 : if ($i == self::YY_REDUCE_USE_DFLT) {
1633 0 : return self::$yy_default[$stateno];
1634 : }
1635 399 : if ($iLookAhead == self::YYNOCODE) {
1636 0 : return self::YY_NO_ACTION;
1637 : }
1638 399 : $i += $iLookAhead;
1639 399 : if ($i < 0 || $i >= self::YY_SZ_ACTTAB ||
1640 399 : self::$yy_lookahead[$i] != $iLookAhead) {
1641 0 : return self::$yy_default[$stateno];
1642 : } else {
1643 399 : return self::$yy_action[$i];
1644 : }
1645 : }
1646 :
1647 : /**
1648 : * Perform a shift action.
1649 : * @param int The new state to shift in
1650 : * @param int The major token to shift in
1651 : * @param mixed the minor token to shift in
1652 : */
1653 : function yy_shift($yyNewState, $yyMajor, $yypMinor)
1654 : {
1655 403 : $this->yyidx++;
1656 403 : if ($this->yyidx >= self::YYSTACKDEPTH) {
1657 0 : $this->yyidx--;
1658 0 : if (self::$yyTraceFILE) {
1659 0 : fprintf(self::$yyTraceFILE, "%sStack Overflow!\n", self::$yyTracePrompt);
1660 0 : }
1661 0 : while ($this->yyidx >= 0) {
1662 0 : $this->yy_pop_parser_stack();
1663 0 : }
1664 : /* Here code is inserted which will execute if the parser
1665 : ** stack ever overflows */
1666 0 : return;
1667 : }
1668 403 : $yytos = new TP_yyStackEntry;
1669 403 : $yytos->stateno = $yyNewState;
1670 403 : $yytos->major = $yyMajor;
1671 403 : $yytos->minor = $yypMinor;
1672 403 : array_push($this->yystack, $yytos);
1673 403 : if (self::$yyTraceFILE && $this->yyidx > 0) {
1674 0 : fprintf(self::$yyTraceFILE, "%sShift %d\n", self::$yyTracePrompt,
1675 0 : $yyNewState);
1676 0 : fprintf(self::$yyTraceFILE, "%sStack:", self::$yyTracePrompt);
1677 0 : for($i = 1; $i <= $this->yyidx; $i++) {
1678 0 : fprintf(self::$yyTraceFILE, " %s",
1679 0 : $this->yyTokenName[$this->yystack[$i]->major]);
1680 0 : }
1681 0 : fwrite(self::$yyTraceFILE,"\n");
1682 0 : }
1683 403 : }
1684 :
1685 : /**
1686 : * The following table contains information about every rule that
1687 : * is used during the reduce.
1688 : *
1689 : * <pre>
1690 : * array(
1691 : * array(
1692 : * int $lhs; Symbol on the left-hand side of the rule
1693 : * int $nrhs; Number of right-hand side symbols in the rule
1694 : * ),...
1695 : * );
1696 : * </pre>
1697 : */
1698 : static public $yyRuleInfo = array(
1699 : array( 'lhs' => 73, 'rhs' => 1 ),
1700 : array( 'lhs' => 74, 'rhs' => 1 ),
1701 : array( 'lhs' => 74, 'rhs' => 2 ),
1702 : array( 'lhs' => 75, 'rhs' => 1 ),
1703 : array( 'lhs' => 75, 'rhs' => 1 ),
1704 : array( 'lhs' => 75, 'rhs' => 3 ),
1705 : array( 'lhs' => 75, 'rhs' => 3 ),
1706 : array( 'lhs' => 75, 'rhs' => 1 ),
1707 : array( 'lhs' => 75, 'rhs' => 1 ),
1708 : array( 'lhs' => 75, 'rhs' => 1 ),
1709 : array( 'lhs' => 76, 'rhs' => 3 ),
1710 : array( 'lhs' => 76, 'rhs' => 4 ),
1711 : array( 'lhs' => 76, 'rhs' => 4 ),
1712 : array( 'lhs' => 76, 'rhs' => 4 ),
1713 : array( 'lhs' => 76, 'rhs' => 4 ),
1714 : array( 'lhs' => 76, 'rhs' => 6 ),
1715 : array( 'lhs' => 76, 'rhs' => 6 ),
1716 : array( 'lhs' => 76, 'rhs' => 7 ),
1717 : array( 'lhs' => 76, 'rhs' => 7 ),
1718 : array( 'lhs' => 76, 'rhs' => 6 ),
1719 : array( 'lhs' => 76, 'rhs' => 6 ),
1720 : array( 'lhs' => 76, 'rhs' => 4 ),
1721 : array( 'lhs' => 76, 'rhs' => 4 ),
1722 : array( 'lhs' => 76, 'rhs' => 3 ),
1723 : array( 'lhs' => 76, 'rhs' => 6 ),
1724 : array( 'lhs' => 76, 'rhs' => 6 ),
1725 : array( 'lhs' => 76, 'rhs' => 8 ),
1726 : array( 'lhs' => 76, 'rhs' => 5 ),
1727 : array( 'lhs' => 76, 'rhs' => 5 ),
1728 : array( 'lhs' => 76, 'rhs' => 13 ),
1729 : array( 'lhs' => 90, 'rhs' => 2 ),
1730 : array( 'lhs' => 90, 'rhs' => 1 ),
1731 : array( 'lhs' => 76, 'rhs' => 7 ),
1732 : array( 'lhs' => 76, 'rhs' => 9 ),
1733 : array( 'lhs' => 76, 'rhs' => 8 ),
1734 : array( 'lhs' => 76, 'rhs' => 11 ),
1735 : array( 'lhs' => 76, 'rhs' => 8 ),
1736 : array( 'lhs' => 76, 'rhs' => 11 ),
1737 : array( 'lhs' => 76, 'rhs' => 3 ),
1738 : array( 'lhs' => 76, 'rhs' => 3 ),
1739 : array( 'lhs' => 92, 'rhs' => 1 ),
1740 : array( 'lhs' => 92, 'rhs' => 1 ),
1741 : array( 'lhs' => 92, 'rhs' => 1 ),
1742 : array( 'lhs' => 76, 'rhs' => 4 ),
1743 : array( 'lhs' => 76, 'rhs' => 6 ),
1744 : array( 'lhs' => 76, 'rhs' => 5 ),
1745 : array( 'lhs' => 78, 'rhs' => 2 ),
1746 : array( 'lhs' => 78, 'rhs' => 1 ),
1747 : array( 'lhs' => 78, 'rhs' => 0 ),
1748 : array( 'lhs' => 93, 'rhs' => 4 ),
1749 : array( 'lhs' => 93, 'rhs' => 4 ),
1750 : array( 'lhs' => 93, 'rhs' => 4 ),
1751 : array( 'lhs' => 93, 'rhs' => 4 ),
1752 : array( 'lhs' => 93, 'rhs' => 2 ),
1753 : array( 'lhs' => 93, 'rhs' => 4 ),
1754 : array( 'lhs' => 87, 'rhs' => 1 ),
1755 : array( 'lhs' => 87, 'rhs' => 3 ),
1756 : array( 'lhs' => 86, 'rhs' => 4 ),
1757 : array( 'lhs' => 80, 'rhs' => 1 ),
1758 : array( 'lhs' => 80, 'rhs' => 1 ),
1759 : array( 'lhs' => 80, 'rhs' => 4 ),
1760 : array( 'lhs' => 80, 'rhs' => 3 ),
1761 : array( 'lhs' => 94, 'rhs' => 1 ),
1762 : array( 'lhs' => 94, 'rhs' => 2 ),
1763 : array( 'lhs' => 94, 'rhs' => 3 ),
1764 : array( 'lhs' => 94, 'rhs' => 1 ),
1765 : array( 'lhs' => 81, 'rhs' => 7 ),
1766 : array( 'lhs' => 81, 'rhs' => 7 ),
1767 : array( 'lhs' => 95, 'rhs' => 1 ),
1768 : array( 'lhs' => 95, 'rhs' => 1 ),
1769 : array( 'lhs' => 95, 'rhs' => 1 ),
1770 : array( 'lhs' => 77, 'rhs' => 1 ),
1771 : array( 'lhs' => 77, 'rhs' => 2 ),
1772 : array( 'lhs' => 77, 'rhs' => 2 ),
1773 : array( 'lhs' => 77, 'rhs' => 1 ),
1774 : array( 'lhs' => 77, 'rhs' => 3 ),
1775 : array( 'lhs' => 77, 'rhs' => 1 ),
1776 : array( 'lhs' => 77, 'rhs' => 1 ),
1777 : array( 'lhs' => 77, 'rhs' => 1 ),
1778 : array( 'lhs' => 77, 'rhs' => 3 ),
1779 : array( 'lhs' => 77, 'rhs' => 1 ),
1780 : array( 'lhs' => 77, 'rhs' => 3 ),
1781 : array( 'lhs' => 77, 'rhs' => 2 ),
1782 : array( 'lhs' => 77, 'rhs' => 3 ),
1783 : array( 'lhs' => 77, 'rhs' => 7 ),
1784 : array( 'lhs' => 77, 'rhs' => 4 ),
1785 : array( 'lhs' => 77, 'rhs' => 8 ),
1786 : array( 'lhs' => 77, 'rhs' => 3 ),
1787 : array( 'lhs' => 77, 'rhs' => 5 ),
1788 : array( 'lhs' => 77, 'rhs' => 6 ),
1789 : array( 'lhs' => 77, 'rhs' => 1 ),
1790 : array( 'lhs' => 79, 'rhs' => 1 ),
1791 : array( 'lhs' => 79, 'rhs' => 4 ),
1792 : array( 'lhs' => 79, 'rhs' => 1 ),
1793 : array( 'lhs' => 79, 'rhs' => 3 ),
1794 : array( 'lhs' => 79, 'rhs' => 3 ),
1795 : array( 'lhs' => 82, 'rhs' => 3 ),
1796 : array( 'lhs' => 101, 'rhs' => 2 ),
1797 : array( 'lhs' => 101, 'rhs' => 0 ),
1798 : array( 'lhs' => 103, 'rhs' => 3 ),
1799 : array( 'lhs' => 103, 'rhs' => 5 ),
1800 : array( 'lhs' => 103, 'rhs' => 2 ),
1801 : array( 'lhs' => 103, 'rhs' => 2 ),
1802 : array( 'lhs' => 103, 'rhs' => 2 ),
1803 : array( 'lhs' => 103, 'rhs' => 2 ),
1804 : array( 'lhs' => 103, 'rhs' => 4 ),
1805 : array( 'lhs' => 103, 'rhs' => 3 ),
1806 : array( 'lhs' => 103, 'rhs' => 5 ),
1807 : array( 'lhs' => 103, 'rhs' => 3 ),
1808 : array( 'lhs' => 103, 'rhs' => 2 ),
1809 : array( 'lhs' => 89, 'rhs' => 1 ),
1810 : array( 'lhs' => 89, 'rhs' => 2 ),
1811 : array( 'lhs' => 104, 'rhs' => 1 ),
1812 : array( 'lhs' => 104, 'rhs' => 3 ),
1813 : array( 'lhs' => 102, 'rhs' => 2 ),
1814 : array( 'lhs' => 100, 'rhs' => 1 ),
1815 : array( 'lhs' => 100, 'rhs' => 2 ),
1816 : array( 'lhs' => 105, 'rhs' => 3 ),
1817 : array( 'lhs' => 105, 'rhs' => 3 ),
1818 : array( 'lhs' => 105, 'rhs' => 5 ),
1819 : array( 'lhs' => 105, 'rhs' => 6 ),
1820 : array( 'lhs' => 105, 'rhs' => 2 ),
1821 : array( 'lhs' => 96, 'rhs' => 4 ),
1822 : array( 'lhs' => 98, 'rhs' => 4 ),
1823 : array( 'lhs' => 99, 'rhs' => 3 ),
1824 : array( 'lhs' => 99, 'rhs' => 1 ),
1825 : array( 'lhs' => 99, 'rhs' => 0 ),
1826 : array( 'lhs' => 83, 'rhs' => 3 ),
1827 : array( 'lhs' => 83, 'rhs' => 2 ),
1828 : array( 'lhs' => 84, 'rhs' => 2 ),
1829 : array( 'lhs' => 84, 'rhs' => 0 ),
1830 : array( 'lhs' => 106, 'rhs' => 2 ),
1831 : array( 'lhs' => 106, 'rhs' => 2 ),
1832 : array( 'lhs' => 85, 'rhs' => 1 ),
1833 : array( 'lhs' => 85, 'rhs' => 2 ),
1834 : array( 'lhs' => 85, 'rhs' => 3 ),
1835 : array( 'lhs' => 107, 'rhs' => 1 ),
1836 : array( 'lhs' => 107, 'rhs' => 3 ),
1837 : array( 'lhs' => 107, 'rhs' => 3 ),
1838 : array( 'lhs' => 107, 'rhs' => 3 ),
1839 : array( 'lhs' => 107, 'rhs' => 3 ),
1840 : array( 'lhs' => 107, 'rhs' => 3 ),
1841 : array( 'lhs' => 107, 'rhs' => 3 ),
1842 : array( 'lhs' => 107, 'rhs' => 2 ),
1843 : array( 'lhs' => 107, 'rhs' => 2 ),
1844 : array( 'lhs' => 107, 'rhs' => 3 ),
1845 : array( 'lhs' => 107, 'rhs' => 3 ),
1846 : array( 'lhs' => 107, 'rhs' => 2 ),
1847 : array( 'lhs' => 107, 'rhs' => 2 ),
1848 : array( 'lhs' => 107, 'rhs' => 3 ),
1849 : array( 'lhs' => 107, 'rhs' => 3 ),
1850 : array( 'lhs' => 107, 'rhs' => 3 ),
1851 : array( 'lhs' => 107, 'rhs' => 3 ),
1852 : array( 'lhs' => 108, 'rhs' => 1 ),
1853 : array( 'lhs' => 108, 'rhs' => 1 ),
1854 : array( 'lhs' => 108, 'rhs' => 1 ),
1855 : array( 'lhs' => 108, 'rhs' => 1 ),
1856 : array( 'lhs' => 108, 'rhs' => 1 ),
1857 : array( 'lhs' => 108, 'rhs' => 1 ),
1858 : array( 'lhs' => 108, 'rhs' => 1 ),
1859 : array( 'lhs' => 108, 'rhs' => 1 ),
1860 : array( 'lhs' => 108, 'rhs' => 1 ),
1861 : array( 'lhs' => 109, 'rhs' => 1 ),
1862 : array( 'lhs' => 109, 'rhs' => 1 ),
1863 : array( 'lhs' => 109, 'rhs' => 1 ),
1864 : array( 'lhs' => 91, 'rhs' => 3 ),
1865 : array( 'lhs' => 110, 'rhs' => 1 ),
1866 : array( 'lhs' => 110, 'rhs' => 3 ),
1867 : array( 'lhs' => 110, 'rhs' => 0 ),
1868 : array( 'lhs' => 111, 'rhs' => 3 ),
1869 : array( 'lhs' => 111, 'rhs' => 3 ),
1870 : array( 'lhs' => 111, 'rhs' => 1 ),
1871 : array( 'lhs' => 97, 'rhs' => 2 ),
1872 : array( 'lhs' => 97, 'rhs' => 1 ),
1873 : array( 'lhs' => 112, 'rhs' => 3 ),
1874 : array( 'lhs' => 112, 'rhs' => 1 ),
1875 : array( 'lhs' => 112, 'rhs' => 3 ),
1876 : array( 'lhs' => 112, 'rhs' => 3 ),
1877 : array( 'lhs' => 112, 'rhs' => 1 ),
1878 : array( 'lhs' => 112, 'rhs' => 1 ),
1879 : array( 'lhs' => 88, 'rhs' => 1 ),
1880 : array( 'lhs' => 88, 'rhs' => 0 ),
1881 : );
1882 :
1883 : /**
1884 : * The following table contains a mapping of reduce action to method name
1885 : * that handles the reduction.
1886 : *
1887 : * If a rule is not set, it has no handler.
1888 : */
1889 : static public $yyReduceMap = array(
1890 : 0 => 0,
1891 : 40 => 0,
1892 : 41 => 0,
1893 : 42 => 0,
1894 : 62 => 0,
1895 : 71 => 0,
1896 : 74 => 0,
1897 : 76 => 0,
1898 : 77 => 0,
1899 : 78 => 0,
1900 : 80 => 0,
1901 : 93 => 0,
1902 : 166 => 0,
1903 : 1 => 1,
1904 : 59 => 1,
1905 : 65 => 1,
1906 : 68 => 1,
1907 : 69 => 1,
1908 : 110 => 1,
1909 : 133 => 1,
1910 : 173 => 1,
1911 : 179 => 1,
1912 : 180 => 1,
1913 : 2 => 2,
1914 : 129 => 2,
1915 : 3 => 3,
1916 : 4 => 4,
1917 : 5 => 5,
1918 : 6 => 6,
1919 : 7 => 7,
1920 : 8 => 8,
1921 : 9 => 9,
1922 : 10 => 10,
1923 : 11 => 11,
1924 : 12 => 11,
1925 : 13 => 11,
1926 : 14 => 11,
1927 : 15 => 15,
1928 : 16 => 15,
1929 : 17 => 17,
1930 : 18 => 17,
1931 : 19 => 19,
1932 : 20 => 19,
1933 : 21 => 21,
1934 : 22 => 21,
1935 : 23 => 23,
1936 : 24 => 24,
1937 : 25 => 25,
1938 : 26 => 26,
1939 : 27 => 27,
1940 : 28 => 27,
1941 : 29 => 29,
1942 : 30 => 30,
1943 : 31 => 31,
1944 : 47 => 31,
1945 : 125 => 31,
1946 : 171 => 31,
1947 : 32 => 32,
1948 : 33 => 33,
1949 : 34 => 34,
1950 : 35 => 35,
1951 : 36 => 36,
1952 : 37 => 37,
1953 : 38 => 38,
1954 : 39 => 38,
1955 : 43 => 43,
1956 : 44 => 44,
1957 : 45 => 45,
1958 : 46 => 46,
1959 : 48 => 48,
1960 : 49 => 49,
1961 : 50 => 50,
1962 : 51 => 50,
1963 : 52 => 50,
1964 : 54 => 50,
1965 : 53 => 53,
1966 : 55 => 55,
1967 : 56 => 56,
1968 : 57 => 57,
1969 : 58 => 58,
1970 : 60 => 60,
1971 : 61 => 61,
1972 : 63 => 63,
1973 : 72 => 63,
1974 : 73 => 63,
1975 : 64 => 64,
1976 : 66 => 66,
1977 : 67 => 66,
1978 : 70 => 70,
1979 : 75 => 75,
1980 : 79 => 79,
1981 : 81 => 81,
1982 : 82 => 82,
1983 : 83 => 83,
1984 : 84 => 84,
1985 : 85 => 85,
1986 : 86 => 86,
1987 : 87 => 87,
1988 : 88 => 88,
1989 : 89 => 89,
1990 : 90 => 90,
1991 : 91 => 91,
1992 : 92 => 92,
1993 : 94 => 94,
1994 : 95 => 95,
1995 : 96 => 96,
1996 : 97 => 97,
1997 : 172 => 97,
1998 : 98 => 98,
1999 : 130 => 98,
2000 : 99 => 99,
2001 : 100 => 100,
2002 : 101 => 101,
2003 : 102 => 101,
2004 : 103 => 101,
2005 : 104 => 104,
2006 : 105 => 105,
2007 : 108 => 105,
2008 : 106 => 106,
2009 : 107 => 107,
2010 : 109 => 109,
2011 : 181 => 109,
2012 : 111 => 111,
2013 : 112 => 112,
2014 : 113 => 113,
2015 : 135 => 113,
2016 : 114 => 114,
2017 : 115 => 115,
2018 : 116 => 116,
2019 : 117 => 117,
2020 : 118 => 118,
2021 : 119 => 119,
2022 : 120 => 120,
2023 : 121 => 121,
2024 : 122 => 122,
2025 : 123 => 123,
2026 : 124 => 124,
2027 : 126 => 126,
2028 : 127 => 127,
2029 : 128 => 128,
2030 : 131 => 131,
2031 : 132 => 132,
2032 : 134 => 134,
2033 : 136 => 136,
2034 : 137 => 137,
2035 : 140 => 137,
2036 : 151 => 137,
2037 : 138 => 138,
2038 : 139 => 139,
2039 : 141 => 141,
2040 : 142 => 142,
2041 : 143 => 143,
2042 : 148 => 143,
2043 : 144 => 144,
2044 : 147 => 144,
2045 : 145 => 145,
2046 : 150 => 145,
2047 : 146 => 146,
2048 : 149 => 146,
2049 : 152 => 152,
2050 : 153 => 153,
2051 : 154 => 154,
2052 : 155 => 155,
2053 : 156 => 156,
2054 : 157 => 157,
2055 : 158 => 158,
2056 : 159 => 159,
2057 : 160 => 160,
2058 : 161 => 161,
2059 : 162 => 162,
2060 : 163 => 163,
2061 : 164 => 164,
2062 : 165 => 165,
2063 : 167 => 167,
2064 : 168 => 168,
2065 : 169 => 169,
2066 : 170 => 170,
2067 : 174 => 174,
2068 : 176 => 174,
2069 : 175 => 175,
2070 : 177 => 177,
2071 : 178 => 178,
2072 : );
2073 : /* Beginning here are the reduction cases. A typical example
2074 : ** follows:
2075 : ** #line <lineno> <grammarfile>
2076 : ** function yy_r0($yymsp){ ... } // User supplied code
2077 : ** #line <lineno> <thisfile>
2078 : */
2079 : #line 78 "smarty_internal_templateparser.y"
2080 397 : function yy_r0(){ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; }
2081 : #line 2086 "smarty_internal_templateparser.php"
2082 : #line 84 "smarty_internal_templateparser.y"
2083 396 : function yy_r1(){$this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; }
2084 : #line 2089 "smarty_internal_templateparser.php"
2085 : #line 86 "smarty_internal_templateparser.y"
2086 318 : function yy_r2(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; }
2087 : #line 2092 "smarty_internal_templateparser.php"
2088 : #line 92 "smarty_internal_templateparser.y"
2089 : function yy_r3(){
2090 368 : if ($this->compiler->has_code) {
2091 368 : $tmp =''; foreach ($this->compiler->prefix_code as $code) {$tmp.=$code;} $this->compiler->prefix_code=array();
2092 368 : $this->_retvalue = $this->cacher->processNocacheCode($tmp.$this->yystack[$this->yyidx + 0]->minor, $this->compiler,true);
2093 368 : } else { $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor;} $this->compiler->has_variable_string = false; }
2094 : #line 2099 "smarty_internal_templateparser.php"
2095 : #line 99 "smarty_internal_templateparser.y"
2096 8 : function yy_r4(){ $this->_retvalue = ''; }
2097 : #line 2102 "smarty_internal_templateparser.php"
2098 : #line 104 "smarty_internal_templateparser.y"
2099 4 : function yy_r5(){if ($this->sec_obj->php_handling == SMARTY_PHP_PASSTHRU) {
2100 1 : $this->_retvalue = $this->cacher->processNocacheCode("<?php echo htmlspecialchars('<?php".str_replace("'","\'",$this->yystack[$this->yyidx + -1]->minor)."?>', ENT_QUOTES);?>\n", $this->compiler, false);
2101 4 : } elseif ($this->sec_obj->php_handling == SMARTY_PHP_QUOTE) {
2102 1 : $this->_retvalue = $this->cacher->processNocacheCode(htmlspecialchars('<?php'.$this->yystack[$this->yyidx + -1]->minor.'?>', ENT_QUOTES), $this->compiler, false);
2103 3 : }elseif ($this->sec_obj->php_handling == SMARTY_PHP_ALLOW) {
2104 2 : $this->_retvalue = $this->cacher->processNocacheCode('<?php'.$this->yystack[$this->yyidx + -1]->minor.'?>', $this->compiler, true);
2105 2 : }elseif ($this->sec_obj->php_handling == SMARTY_PHP_REMOVE) {
2106 0 : $this->_retvalue = '';
2107 0 : }
2108 4 : }
2109 : #line 2114 "smarty_internal_templateparser.php"
2110 : #line 115 "smarty_internal_templateparser.y"
2111 : function yy_r6(){
2112 1 : if ($this->sec_obj->php_handling == SMARTY_PHP_PASSTHRU || $this->sec_obj->php_handling == SMARTY_PHP_ALLOW) {
2113 1 : $this->_retvalue = $this->cacher->processNocacheCode("<?php echo '<?=".$this->yystack[$this->yyidx + -1]->minor."?>'?>\n", $this->compiler, false);
2114 1 : } elseif ($this->sec_obj->php_handling == SMARTY_PHP_QUOTE) {
2115 0 : $this->_retvalue = $this->cacher->processNocacheCode(htmlspecialchars('<?='.$this->yystack[$this->yyidx + -1]->minor.'?>', ENT_QUOTES), $this->compiler, false);
2116 0 : }elseif ($this->sec_obj == SMARTY_PHP_REMOVE) {
2117 0 : $this->_retvalue = '';
2118 0 : }
2119 1 : }
2120 : #line 2125 "smarty_internal_templateparser.php"
2121 : #line 126 "smarty_internal_templateparser.y"
2122 3 : function yy_r7(){ $this->compiler->tag_nocache = true; $this->_retvalue = $this->cacher->processNocacheCode("<?php echo '<?xml';?>", $this->compiler, true); }
2123 : #line 2128 "smarty_internal_templateparser.php"
2124 : #line 127 "smarty_internal_templateparser.y"
2125 3 : function yy_r8(){$this->compiler->tag_nocache = true; $this->_retvalue = $this->cacher->processNocacheCode("<?php echo '?>';?>\n", $this->compiler, true); }
2126 : #line 2131 "smarty_internal_templateparser.php"
2127 : #line 129 "smarty_internal_templateparser.y"
2128 212 : function yy_r9(){$this->_retvalue = $this->cacher->processNocacheCode($this->yystack[$this->yyidx + 0]->minor, $this->compiler,false); }
2129 : #line 2134 "smarty_internal_templateparser.php"
2130 : #line 137 "smarty_internal_templateparser.y"
2131 18 : function yy_r10(){ $this->_retvalue = $this->compiler->compileTag('print_expression',array('value'=>$this->yystack[$this->yyidx + -1]->minor)); }
2132 : #line 2137 "smarty_internal_templateparser.php"
2133 : #line 138 "smarty_internal_templateparser.y"
2134 226 : function yy_r11(){ $this->_retvalue = $this->compiler->compileTag('print_expression',array_merge(array('value'=>$this->yystack[$this->yyidx + -2]->minor),$this->yystack[$this->yyidx + -1]->minor)); }
2135 : #line 2140 "smarty_internal_templateparser.php"
2136 : #line 149 "smarty_internal_templateparser.y"
2137 68 : function yy_r15(){ $this->_retvalue = $this->compiler->compileTag('assign',array('value'=>$this->yystack[$this->yyidx + -1]->minor,'var'=>"'".$this->yystack[$this->yyidx + -3]->minor."'")); }
2138 : #line 2143 "smarty_internal_templateparser.php"
2139 : #line 151 "smarty_internal_templateparser.y"
2140 1 : function yy_r17(){ $this->_retvalue = $this->compiler->compileTag('assign',array_merge(array('value'=>$this->yystack[$this->yyidx + -2]->minor,'var'=>"'".$this->yystack[$this->yyidx + -4]->minor."'"),$this->yystack[$this->yyidx + -1]->minor)); }
2141 : #line 2146 "smarty_internal_templateparser.php"
2142 : #line 153 "smarty_internal_templateparser.y"
2143 11 : function yy_r19(){ $this->_retvalue = $this->compiler->compileTag('assign',array_merge(array('value'=>$this->yystack[$this->yyidx + -2]->minor),$this->yystack[$this->yyidx + -4]->minor,$this->yystack[$this->yyidx + -1]->minor)); }
2144 : #line 2149 "smarty_internal_templateparser.php"
2145 : #line 156 "smarty_internal_templateparser.y"
2146 114 : function yy_r21(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -2]->minor,$this->yystack[$this->yyidx + -1]->minor); }
2147 : #line 2152 "smarty_internal_templateparser.php"
2148 : #line 158 "smarty_internal_templateparser.y"
2149 120 : function yy_r23(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -1]->minor,array()); }
2150 : #line 2155 "smarty_internal_templateparser.php"
2151 : #line 160 "smarty_internal_templateparser.y"
2152 2 : function yy_r24(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -4]->minor,array_merge(array('object_methode'=>$this->yystack[$this->yyidx + -2]->minor),$this->yystack[$this->yyidx + -1]->minor)); }
2153 : #line 2158 "smarty_internal_templateparser.php"
2154 : #line 162 "smarty_internal_templateparser.y"
2155 1 : function yy_r25(){ $this->_retvalue = '<?php ob_start();?>'.$this->compiler->compileTag($this->yystack[$this->yyidx + -4]->minor,$this->yystack[$this->yyidx + -1]->minor).'<?php echo ';
2156 1 : if ($this->smarty->plugin_handler->loadSmartyPlugin($this->yystack[$this->yyidx + -3]->minor[0],'modifier')) {
2157 1 : $this->_retvalue .= "\$_smarty_tpl->smarty->plugin_handler->executeModifier('".$this->yystack[$this->yyidx + -3]->minor[0] . "',array(ob_get_clean()" . $this->yystack[$this->yyidx + -2]->minor. "),".$this->yystack[$this->yyidx + -3]->minor[1].");?>";
2158 1 : } else {
2159 0 : if (is_callable($this->yystack[$this->yyidx + -3]->minor[0])) {
2160 0 : if (!$this->template->security || $this->smarty->security_handler->isTrustedModifier($this->yystack[$this->yyidx + -3]->minor[0], $this->compiler)) {
2161 0 : $this->_retvalue .= "\$_smarty_tpl->smarty->plugin_handler->executeModifier('".$this->yystack[$this->yyidx + -3]->minor[0] . "',array(ob_get_clean()" . $this->yystack[$this->yyidx + -2]->minor. "),".$this->yystack[$this->yyidx + -3]->minor[1].");?>";
2162 0 : }
2163 0 : } else {
2164 0 : $this->compiler->trigger_template_error ("unknown modifier \"" . $this->yystack[$this->yyidx + -3]->minor[0] . "\"");
2165 : }
2166 : }
2167 1 : }
2168 : #line 2173 "smarty_internal_templateparser.php"
2169 : #line 176 "smarty_internal_templateparser.y"
2170 1 : function yy_r26(){ $this->_retvalue = '<?php ob_start();?>'.$this->compiler->compileTag($this->yystack[$this->yyidx + -6]->minor,array_merge(array('object_methode'=>$this->yystack[$this->yyidx + -4]->minor),$this->yystack[$this->yyidx + -1]->minor)).'<?php echo ';
2171 1 : if ($this->smarty->plugin_handler->loadSmartyPlugin($this->yystack[$this->yyidx + -3]->minor[0],'modifier')) {
2172 1 : $this->_retvalue .= "\$_smarty_tpl->smarty->plugin_handler->executeModifier('".$this->yystack[$this->yyidx + -3]->minor[0] . "',array(ob_get_clean()" . $this->yystack[$this->yyidx + -2]->minor. "),".$this->yystack[$this->yyidx + -3]->minor[1].");?>";
2173 1 : } else {
2174 0 : if (is_callable($this->yystack[$this->yyidx + -3]->minor[0])) {
2175 0 : if (!$this->template->security || $this->smarty->security_handler->isTrustedModifier($this->yystack[$this->yyidx + -3]->minor[0], $this->compiler)) {
2176 0 : $this->_retvalue .= "\$_smarty_tpl->smarty->plugin_handler->executeModifier('".$this->yystack[$this->yyidx + -3]->minor[0] . "',array(ob_get_clean()" . $this->yystack[$this->yyidx + -2]->minor. "),".$this->yystack[$this->yyidx + -3]->minor[1].");?>";
2177 0 : }
2178 0 : } else {
2179 0 : $this->compiler->trigger_template_error ("unknown modifier \"" . $this->yystack[$this->yyidx + -3]->minor[0] . "\"");
2180 : }
2181 : }
2182 1 : }
2183 : #line 2188 "smarty_internal_templateparser.php"
2184 : #line 190 "smarty_internal_templateparser.y"
2185 85 : function yy_r27(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -3]->minor,array('if condition'=>$this->yystack[$this->yyidx + -1]->minor)); }
2186 : #line 2191 "smarty_internal_templateparser.php"
2187 : #line 193 "smarty_internal_templateparser.y"
2188 : function yy_r29(){
2189 7 : $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -11]->minor,array('start'=>$this->yystack[$this->yyidx + -9]->minor,'ifexp'=>$this->yystack[$this->yyidx + -6]->minor,'varloop'=>$this->yystack[$this->yyidx + -2]->minor,'loop'=>$this->yystack[$this->yyidx + -1]->minor)); }
2190 : #line 2195 "smarty_internal_templateparser.php"
2191 : #line 195 "smarty_internal_templateparser.y"
2192 1 : function yy_r30(){ $this->_retvalue = '='.$this->yystack[$this->yyidx + 0]->minor; }
2193 : #line 2198 "smarty_internal_templateparser.php"
2194 : #line 196 "smarty_internal_templateparser.y"
2195 147 : function yy_r31(){ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; }
2196 : #line 2201 "smarty_internal_templateparser.php"
2197 : #line 197 "smarty_internal_templateparser.y"
2198 1 : function yy_r32(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -5]->minor,array('start'=>$this->yystack[$this->yyidx + -3]->minor,'to'=>$this->yystack[$this->yyidx + -1]->minor)); }
2199 : #line 2204 "smarty_internal_templateparser.php"
2200 : #line 198 "smarty_internal_templateparser.y"
2201 5 : function yy_r33(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -7]->minor,array('start'=>$this->yystack[$this->yyidx + -5]->minor,'to'=>$this->yystack[$this->yyidx + -3]->minor,'step'=>$this->yystack[$this->yyidx + -1]->minor)); }
2202 : #line 2207 "smarty_internal_templateparser.php"
2203 : #line 200 "smarty_internal_templateparser.y"
2204 : function yy_r34(){
2205 16 : $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -6]->minor,array('from'=>$this->yystack[$this->yyidx + -4]->minor,'item'=>$this->yystack[$this->yyidx + -1]->minor)); }
2206 : #line 2211 "smarty_internal_templateparser.php"
2207 : #line 202 "smarty_internal_templateparser.y"
2208 : function yy_r35(){
2209 0 : $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -9]->minor,array('from'=>$this->yystack[$this->yyidx + -7]->minor,'item'=>$this->yystack[$this->yyidx + -1]->minor,'key'=>$this->yystack[$this->yyidx + -4]->minor)); }
2210 : #line 2215 "smarty_internal_templateparser.php"
2211 : #line 204 "smarty_internal_templateparser.y"
2212 : function yy_r36(){
2213 1 : $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -6]->minor,array('from'=>$this->yystack[$this->yyidx + -4]->minor,'item'=>$this->yystack[$this->yyidx + -1]->minor)); }
2214 : #line 2219 "smarty_internal_templateparser.php"
2215 : #line 206 "smarty_internal_templateparser.y"
2216 : function yy_r37(){
2217 0 : $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -9]->minor,array('from'=>$this->yystack[$this->yyidx + -7]->minor,'item'=>$this->yystack[$this->yyidx + -1]->minor,'key'=>$this->yystack[$this->yyidx + -4]->minor)); }
2218 : #line 2223 "smarty_internal_templateparser.php"
2219 : #line 210 "smarty_internal_templateparser.y"
2220 160 : function yy_r38(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -1]->minor.'close',array()); }
2221 : #line 2226 "smarty_internal_templateparser.php"
2222 : #line 215 "smarty_internal_templateparser.y"
2223 2 : function yy_r43(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -2]->minor.'close',$this->yystack[$this->yyidx + -1]->minor); }
2224 : #line 2229 "smarty_internal_templateparser.php"
2225 : #line 216 "smarty_internal_templateparser.y"
2226 0 : function yy_r44(){ $this->_retvalue = '<?php ob_start();?>'.$this->compiler->compileTag($this->yystack[$this->yyidx + -4]->minor.'close',$this->yystack[$this->yyidx + -1]->minor).'<?php echo ';
2227 0 : if ($this->smarty->plugin_handler->loadSmartyPlugin($this->yystack[$this->yyidx + -3]->minor[0],'modifier')) {
2228 0 : $this->_retvalue .= "\$_smarty_tpl->smarty->plugin_handler->executeModifier('".$this->yystack[$this->yyidx + -3]->minor[0] . "',array(ob_get_clean()" . $this->yystack[$this->yyidx + -2]->minor. "),".$this->yystack[$this->yyidx + -3]->minor[1].");?>";
2229 0 : } else {
2230 0 : if (is_callable($this->yystack[$this->yyidx + -3]->minor[0])) {
2231 0 : if (!$this->template->security || $this->smarty->security_handler->isTrustedModifier($this->yystack[$this->yyidx + -3]->minor[0], $this->compiler)) {
2232 0 : $this->_retvalue .= "\$_smarty_tpl->smarty->plugin_handler->executeModifier('".$this->yystack[$this->yyidx + -3]->minor[0] . "',array(ob_get_clean()" . $this->yystack[$this->yyidx + -2]->minor. "),".$this->yystack[$this->yyidx + -3]->minor[1].");?>";
2233 0 : }
2234 0 : } else {
2235 0 : $this->compiler->trigger_template_error ("unknown modifier \"" . $this->yystack[$this->yyidx + -3]->minor[0] . "\"");
2236 : }
2237 : }
2238 0 : }
2239 : #line 2244 "smarty_internal_templateparser.php"
2240 : #line 230 "smarty_internal_templateparser.y"
2241 1 : function yy_r45(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -3]->minor.'close',array('object_methode'=>$this->yystack[$this->yyidx + -1]->minor)); }
2242 : #line 2247 "smarty_internal_templateparser.php"
2243 : #line 237 "smarty_internal_templateparser.y"
2244 72 : function yy_r46(){ $this->_retvalue = array_merge($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor); }
2245 : #line 2250 "smarty_internal_templateparser.php"
2246 : #line 241 "smarty_internal_templateparser.y"
2247 229 : function yy_r48(){ $this->_retvalue = array(); }
2248 : #line 2253 "smarty_internal_templateparser.php"
2249 : #line 244 "smarty_internal_templateparser.y"
2250 79 : function yy_r49(){ $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>"'".$this->yystack[$this->yyidx + 0]->minor."'"); }
2251 : #line 2256 "smarty_internal_templateparser.php"
2252 : #line 245 "smarty_internal_templateparser.y"
2253 104 : function yy_r50(){ $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>$this->yystack[$this->yyidx + 0]->minor); }
2254 : #line 2259 "smarty_internal_templateparser.php"
2255 : #line 248 "smarty_internal_templateparser.y"
2256 0 : function yy_r53(){ $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor=>'true'); }
2257 : #line 2262 "smarty_internal_templateparser.php"
2258 : #line 255 "smarty_internal_templateparser.y"
2259 7 : function yy_r55(){ $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor); }
2260 : #line 2265 "smarty_internal_templateparser.php"
2261 : #line 256 "smarty_internal_templateparser.y"
2262 1 : function yy_r56(){ $this->yystack[$this->yyidx + -2]->minor[]=$this->yystack[$this->yyidx + 0]->minor; $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor; }
2263 : #line 2268 "smarty_internal_templateparser.php"
2264 : #line 258 "smarty_internal_templateparser.y"
2265 16 : function yy_r57(){ $this->_retvalue = array('var' => $this->yystack[$this->yyidx + -2]->minor, 'value'=>$this->yystack[$this->yyidx + 0]->minor); }
2266 : #line 2271 "smarty_internal_templateparser.php"
2267 : #line 264 "smarty_internal_templateparser.y"
2268 2 : function yy_r58(){ $this->_retvalue = '\''.$this->yystack[$this->yyidx + 0]->minor.'\''; }
2269 : #line 2274 "smarty_internal_templateparser.php"
2270 : #line 267 "smarty_internal_templateparser.y"
2271 1 : function yy_r60(){$this->_retvalue = '$_smarty_tpl->getStreamVariable(\''. $this->yystack[$this->yyidx + -2]->minor .'://'. $this->yystack[$this->yyidx + 0]->minor . '\')'; }
2272 : #line 2277 "smarty_internal_templateparser.php"
2273 : #line 268 "smarty_internal_templateparser.y"
2274 : function yy_r61(){
2275 15 : if ($this->smarty->plugin_handler->loadSmartyPlugin($this->yystack[$this->yyidx + -1]->minor[0],'modifier')) {
2276 7 : $this->_retvalue = "\$_smarty_tpl->smarty->plugin_handler->executeModifier('".$this->yystack[$this->yyidx + -1]->minor[0] . "',array(". $this->yystack[$this->yyidx + -2]->minor . $this->yystack[$this->yyidx + 0]->minor. "),".$this->yystack[$this->yyidx + -1]->minor[1].")";
2277 7 : } else {
2278 9 : if (is_callable($this->yystack[$this->yyidx + -1]->minor[0])) {
2279 8 : if (!$this->template->security || $this->smarty->security_handler->isTrustedModifier($this->yystack[$this->yyidx + -1]->minor[0], $this->compiler)) {
2280 7 : $this->_retvalue = "\$_smarty_tpl->smarty->plugin_handler->executeModifier('".$this->yystack[$this->yyidx + -1]->minor[0] . "',array(". $this->yystack[$this->yyidx + -2]->minor . $this->yystack[$this->yyidx + 0]->minor. "),".$this->yystack[$this->yyidx + -1]->minor[1].")";
2281 7 : }
2282 7 : } else {
2283 1 : $this->compiler->trigger_template_error ("unknown modifier \"" . $this->yystack[$this->yyidx + -1]->minor[0] . "\"");
2284 : }
2285 : }
2286 13 : }
2287 : #line 2292 "smarty_internal_templateparser.php"
2288 : #line 285 "smarty_internal_templateparser.y"
2289 3 : function yy_r63(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; }
2290 : #line 2295 "smarty_internal_templateparser.php"
2291 : #line 287 "smarty_internal_templateparser.y"
2292 20 : function yy_r64(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor . $this->yystack[$this->yyidx + -1]->minor . $this->yystack[$this->yyidx + 0]->minor; }
2293 : #line 2298 "smarty_internal_templateparser.php"
2294 : #line 294 "smarty_internal_templateparser.y"
2295 17 : function yy_r66(){ $this->_retvalue = $this->yystack[$this->yyidx + -5]->minor.' ? '.$this->yystack[$this->yyidx + -2]->minor.' : '.$this->yystack[$this->yyidx + 0]->minor; }
2296 : #line 2301 "smarty_internal_templateparser.php"
2297 : #line 308 "smarty_internal_templateparser.y"
2298 0 : function yy_r70(){$this->_retvalue = ' & '; }
2299 : #line 2304 "smarty_internal_templateparser.php"
2300 : #line 316 "smarty_internal_templateparser.y"
2301 0 : function yy_r75(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'.'.$this->yystack[$this->yyidx + 0]->minor; }
2302 : #line 2307 "smarty_internal_templateparser.php"
2303 : #line 326 "smarty_internal_templateparser.y"
2304 2 : function yy_r79(){ $this->_retvalue = "(". $this->yystack[$this->yyidx + -1]->minor .")"; }
2305 : #line 2310 "smarty_internal_templateparser.php"
2306 : #line 330 "smarty_internal_templateparser.y"
2307 55 : function yy_r81(){ $_s = str_replace(array('."".','.""'),array('.',''),'"'.$this->yystack[$this->yyidx + -1]->minor.'"');
2308 55 : if (substr($_s,0,3) == '"".') {
2309 2 : $this->_retvalue = substr($_s,3);
2310 2 : } else {
2311 53 : $this->_retvalue = $_s;
2312 : }
2313 55 : }
2314 : #line 2319 "smarty_internal_templateparser.php"
2315 : #line 337 "smarty_internal_templateparser.y"
2316 1 : function yy_r82(){ $this->_retvalue = "''"; }
2317 : #line 2322 "smarty_internal_templateparser.php"
2318 : #line 339 "smarty_internal_templateparser.y"
2319 1 : function yy_r83(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'::'.$this->yystack[$this->yyidx + 0]->minor; }
2320 : #line 2325 "smarty_internal_templateparser.php"
2321 : #line 340 "smarty_internal_templateparser.y"
2322 2 : function yy_r84(){ $this->prefix_number++; $this->compiler->prefix_code[] = '<?php $_tmp'.$this->prefix_number.'=$_smarty_tpl->getVariable(\''. $this->yystack[$this->yyidx + -3]->minor .'\')->value;?>'; $this->_retvalue = $this->yystack[$this->yyidx + -6]->minor.'::$_tmp'.$this->prefix_number.'('. $this->yystack[$this->yyidx + -1]->minor .')'; }
2323 : #line 2328 "smarty_internal_templateparser.php"
2324 : #line 342 "smarty_internal_templateparser.y"
2325 0 : function yy_r85(){ $this->_retvalue = $this->yystack[$this->yyidx + -3]->minor.'::'.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; }
2326 : #line 2331 "smarty_internal_templateparser.php"
2327 : #line 343 "smarty_internal_templateparser.y"
2328 0 : function yy_r86(){ $this->prefix_number++; $this->compiler->prefix_code[] = '<?php $_tmp'.$this->prefix_number.'=$_smarty_tpl->getVariable(\''. $this->yystack[$this->yyidx + -4]->minor .'\')->value;?>'; $this->_retvalue = $this->yystack[$this->yyidx + -7]->minor.'::$_tmp'.$this->prefix_number.'('. $this->yystack[$this->yyidx + -2]->minor .')'.$this->yystack[$this->yyidx + 0]->minor; }
2329 : #line 2334 "smarty_internal_templateparser.php"
2330 : #line 345 "smarty_internal_templateparser.y"
2331 1 : function yy_r87(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'::'.$this->yystack[$this->yyidx + 0]->minor; }
2332 : #line 2337 "smarty_internal_templateparser.php"
2333 : #line 347 "smarty_internal_templateparser.y"
2334 1 : function yy_r88(){ $this->_retvalue = $this->yystack[$this->yyidx + -4]->minor.'::$'.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; }
2335 : #line 2340 "smarty_internal_templateparser.php"
2336 : #line 349 "smarty_internal_templateparser.y"
2337 0 : function yy_r89(){ $this->_retvalue = $this->yystack[$this->yyidx + -5]->minor.'::$'.$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; }
2338 : #line 2343 "smarty_internal_templateparser.php"
2339 : #line 351 "smarty_internal_templateparser.y"
2340 1 : function yy_r90(){ $this->prefix_number++; $this->compiler->prefix_code[] = '<?php ob_start();?>'.$this->yystack[$this->yyidx + 0]->minor.'<?php $_tmp'.$this->prefix_number.'=ob_get_clean();?>'; $this->_retvalue = '$_tmp'.$this->prefix_number; }
2341 : #line 2346 "smarty_internal_templateparser.php"
2342 : #line 360 "smarty_internal_templateparser.y"
2343 212 : function yy_r91(){if ($this->yystack[$this->yyidx + 0]->minor['var'] == '\'smarty\'') { $this->_retvalue = $this->compiler->compileTag('special_smarty_variable',$this->yystack[$this->yyidx + 0]->minor['index']);} else {
2344 212 : $this->_retvalue = '$_smarty_tpl->getVariable('. $this->yystack[$this->yyidx + 0]->minor['var'] .')->value'.$this->yystack[$this->yyidx + 0]->minor['index']; $this->compiler->tag_nocache=$this->compiler->tag_nocache|$this->template->getVariable(trim($this->yystack[$this->yyidx + 0]->minor['var'],"'"), null, true, false)->nocache;} }
2345 : #line 2350 "smarty_internal_templateparser.php"
2346 : #line 363 "smarty_internal_templateparser.y"
2347 12 : function yy_r92(){ $this->_retvalue = '$_smarty_tpl->getVariable('. $this->yystack[$this->yyidx + -2]->minor .')->'.$this->yystack[$this->yyidx + 0]->minor; $this->compiler->tag_nocache=$this->compiler->tag_nocache|$this->template->getVariable(trim($this->yystack[$this->yyidx + -2]->minor,"'"), null, true, false)->nocache; }
2348 : #line 2353 "smarty_internal_templateparser.php"
2349 : #line 367 "smarty_internal_templateparser.y"
2350 17 : function yy_r94(){$this->_retvalue = '$_smarty_tpl->getConfigVariable(\''. $this->yystack[$this->yyidx + -1]->minor .'\')'; }
2351 : #line 2356 "smarty_internal_templateparser.php"
2352 : #line 368 "smarty_internal_templateparser.y"
2353 0 : function yy_r95(){$this->_retvalue = '$_smarty_tpl->getConfigVariable('. $this->yystack[$this->yyidx + -1]->minor .')'; }
2354 : #line 2359 "smarty_internal_templateparser.php"
2355 : #line 371 "smarty_internal_templateparser.y"
2356 215 : function yy_r96(){$this->_retvalue = array('var'=>$this->yystack[$this->yyidx + -1]->minor, 'index'=>$this->yystack[$this->yyidx + 0]->minor); }
2357 : #line 2362 "smarty_internal_templateparser.php"
2358 : #line 377 "smarty_internal_templateparser.y"
2359 58 : function yy_r97(){$this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; }
2360 : #line 2365 "smarty_internal_templateparser.php"
2361 : #line 379 "smarty_internal_templateparser.y"
2362 223 : function yy_r98(){return; }
2363 : #line 2368 "smarty_internal_templateparser.php"
2364 : #line 383 "smarty_internal_templateparser.y"
2365 3 : function yy_r99(){ $this->_retvalue = '[$_smarty_tpl->getVariable('. $this->yystack[$this->yyidx + 0]->minor .')->value]'; $this->compiler->tag_nocache=$this->compiler->tag_nocache|$this->template->getVariable('$this->yystack[$this->yyidx + 0]->minor', null, true, false)->nocache; }
2366 : #line 2371 "smarty_internal_templateparser.php"
2367 : #line 384 "smarty_internal_templateparser.y"
2368 0 : function yy_r100(){ $this->_retvalue = '[$_smarty_tpl->getVariable('. $this->yystack[$this->yyidx + -2]->minor .')->'.$this->yystack[$this->yyidx + 0]->minor.']'; $this->compiler->tag_nocache=$this->compiler->tag_nocache|$this->template->getVariable(trim($this->yystack[$this->yyidx + -2]->minor,"'"), null, true, false)->nocache; }
2369 : #line 2374 "smarty_internal_templateparser.php"
2370 : #line 387 "smarty_internal_templateparser.y"
2371 10 : function yy_r101(){ $this->_retvalue = "['". $this->yystack[$this->yyidx + 0]->minor ."']"; }
2372 : #line 2377 "smarty_internal_templateparser.php"
2373 : #line 391 "smarty_internal_templateparser.y"
2374 10 : function yy_r104(){ $this->_retvalue = "[". $this->yystack[$this->yyidx + 0]->minor ."]"; }
2375 : #line 2380 "smarty_internal_templateparser.php"
2376 : #line 392 "smarty_internal_templateparser.y"
2377 24 : function yy_r105(){ $this->_retvalue = "[". $this->yystack[$this->yyidx + -1]->minor ."]"; }
2378 : #line 2383 "smarty_internal_templateparser.php"
2379 : #line 394 "smarty_internal_templateparser.y"
2380 5 : function yy_r106(){ $this->_retvalue = '['.$this->compiler->compileTag('special_smarty_variable','[\'section\'][\''.$this->yystack[$this->yyidx + -1]->minor.'\'][\'index\']').']'; }
2381 : #line 2386 "smarty_internal_templateparser.php"
2382 : #line 395 "smarty_internal_templateparser.y"
2383 0 : function yy_r107(){ $this->_retvalue = '['.$this->compiler->compileTag('special_smarty_variable','[\'section\'][\''.$this->yystack[$this->yyidx + -3]->minor.'\'][\''.$this->yystack[$this->yyidx + -1]->minor.'\']').']'; }
2384 : #line 2389 "smarty_internal_templateparser.php"
2385 : #line 399 "smarty_internal_templateparser.y"
2386 9 : function yy_r109(){$this->_retvalue = ''; }
2387 : #line 2392 "smarty_internal_templateparser.php"
2388 : #line 407 "smarty_internal_templateparser.y"
2389 4 : function yy_r111(){$this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.'.'.$this->yystack[$this->yyidx + 0]->minor; }
2390 : #line 2395 "smarty_internal_templateparser.php"
2391 : #line 409 "smarty_internal_templateparser.y"
2392 217 : function yy_r112(){$this->_retvalue = '\''.$this->yystack[$this->yyidx + 0]->minor.'\''; }
2393 : #line 2398 "smarty_internal_templateparser.php"
2394 : #line 412 "smarty_internal_templateparser.y"
2395 9 : function yy_r113(){$this->_retvalue = '('.$this->yystack[$this->yyidx + -1]->minor.')'; }
2396 : #line 2401 "smarty_internal_templateparser.php"
2397 : #line 417 "smarty_internal_templateparser.y"
2398 3 : function yy_r114(){ if ($this->yystack[$this->yyidx + -1]->minor['var'] == '\'smarty\'') { $this->_retvalue = $this->compiler->compileTag('special_smarty_variable',$this->yystack[$this->yyidx + -1]->minor['index']).$this->yystack[$this->yyidx + 0]->minor;} else {
2399 3 : $this->_retvalue = '$_smarty_tpl->getVariable('. $this->yystack[$this->yyidx + -1]->minor['var'] .')->value'.$this->yystack[$this->yyidx + -1]->minor['index'].$this->yystack[$this->yyidx + 0]->minor; $this->compiler->tag_nocache=$this->compiler->tag_nocache|$this->template->getVariable(trim($this->yystack[$this->yyidx + -1]->minor['var'],"'"), null, true, false)->nocache;} }
2400 : #line 2405 "smarty_internal_templateparser.php"
2401 : #line 420 "smarty_internal_templateparser.y"
2402 3 : function yy_r115(){$this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; }
2403 : #line 2408 "smarty_internal_templateparser.php"
2404 : #line 422 "smarty_internal_templateparser.y"
2405 0 : function yy_r116(){$this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; }
2406 : #line 2411 "smarty_internal_templateparser.php"
2407 : #line 424 "smarty_internal_templateparser.y"
2408 3 : function yy_r117(){ $this->_retvalue = '->'.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; }
2409 : #line 2414 "smarty_internal_templateparser.php"
2410 : #line 425 "smarty_internal_templateparser.y"
2411 0 : function yy_r118(){ $this->_retvalue = '->{'.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor.'}'; }
2412 : #line 2417 "smarty_internal_templateparser.php"
2413 : #line 426 "smarty_internal_templateparser.y"
2414 0 : function yy_r119(){ $this->_retvalue = '->{'.$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + 0]->minor.'}'; }
2415 : #line 2420 "smarty_internal_templateparser.php"
2416 : #line 427 "smarty_internal_templateparser.y"
2417 0 : function yy_r120(){ $this->_retvalue = '->{\''.$this->yystack[$this->yyidx + -4]->minor.'\'.'.$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + 0]->minor.'}'; }
2418 : #line 2423 "smarty_internal_templateparser.php"
2419 : #line 429 "smarty_internal_templateparser.y"
2420 0 : function yy_r121(){ $this->_retvalue = '->'.$this->yystack[$this->yyidx + 0]->minor; }
2421 : #line 2426 "smarty_internal_templateparser.php"
2422 : #line 435 "smarty_internal_templateparser.y"
2423 11 : function yy_r122(){if (!$this->template->security || $this->smarty->security_handler->isTrustedPhpFunction($this->yystack[$this->yyidx + -3]->minor, $this->compiler)) {
2424 9 : if ($this->yystack[$this->yyidx + -3]->minor == 'isset' || $this->yystack[$this->yyidx + -3]->minor == 'empty' || $this->yystack[$this->yyidx + -3]->minor == 'array' || is_callable($this->yystack[$this->yyidx + -3]->minor)) {
2425 9 : $this->_retvalue = $this->yystack[$this->yyidx + -3]->minor . "(". $this->yystack[$this->yyidx + -1]->minor .")";
2426 9 : } else {
2427 0 : $this->compiler->trigger_template_error ("unknown function \"" . $this->yystack[$this->yyidx + -3]->minor . "\"");
2428 : }
2429 9 : } }
2430 : #line 2435 "smarty_internal_templateparser.php"
2431 : #line 446 "smarty_internal_templateparser.y"
2432 1 : function yy_r123(){ $this->_retvalue = $this->yystack[$this->yyidx + -3]->minor . "(". $this->yystack[$this->yyidx + -1]->minor .")"; }
2433 : #line 2438 "smarty_internal_templateparser.php"
2434 : #line 450 "smarty_internal_templateparser.y"
2435 0 : function yy_r124(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.",".$this->yystack[$this->yyidx + 0]->minor; }
2436 : #line 2441 "smarty_internal_templateparser.php"
2437 : #line 454 "smarty_internal_templateparser.y"
2438 2 : function yy_r126(){ return; }
2439 : #line 2444 "smarty_internal_templateparser.php"
2440 : #line 459 "smarty_internal_templateparser.y"
2441 3 : function yy_r127(){ $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor,'false'); }
2442 : #line 2447 "smarty_internal_templateparser.php"
2443 : #line 460 "smarty_internal_templateparser.y"
2444 14 : function yy_r128(){ $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor,'true'); }
2445 : #line 2450 "smarty_internal_templateparser.php"
2446 : #line 476 "smarty_internal_templateparser.y"
2447 8 : function yy_r131(){$this->_retvalue = ','.$this->yystack[$this->yyidx + 0]->minor; }
2448 : #line 2453 "smarty_internal_templateparser.php"
2449 : #line 477 "smarty_internal_templateparser.y"
2450 1 : function yy_r132(){$this->_retvalue = ',\''.$this->yystack[$this->yyidx + 0]->minor.'\''; }
2451 : #line 2456 "smarty_internal_templateparser.php"
2452 : #line 484 "smarty_internal_templateparser.y"
2453 2 : function yy_r134(){$this->_retvalue = '!'.$this->yystack[$this->yyidx + 0]->minor; }
2454 : #line 2459 "smarty_internal_templateparser.php"
2455 : #line 489 "smarty_internal_templateparser.y"
2456 29 : function yy_r136(){$this->_retvalue =$this->yystack[$this->yyidx + 0]->minor; }
2457 : #line 2462 "smarty_internal_templateparser.php"
2458 : #line 491 "smarty_internal_templateparser.y"
2459 66 : function yy_r137(){$this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; }
2460 : #line 2465 "smarty_internal_templateparser.php"
2461 : #line 492 "smarty_internal_templateparser.y"
2462 0 : function yy_r138(){$this->_retvalue = 'in_array('.$this->yystack[$this->yyidx + -2]->minor.','.$this->yystack[$this->yyidx + 0]->minor.')'; }
2463 : #line 2468 "smarty_internal_templateparser.php"
2464 : #line 493 "smarty_internal_templateparser.y"
2465 0 : function yy_r139(){$this->_retvalue = 'in_array('.$this->yystack[$this->yyidx + -2]->minor.',(array)'.$this->yystack[$this->yyidx + 0]->minor.')'; }
2466 : #line 2471 "smarty_internal_templateparser.php"
2467 : #line 495 "smarty_internal_templateparser.y"
2468 1 : function yy_r141(){$this->_retvalue = '!('.$this->yystack[$this->yyidx + -2]->minor.' % '.$this->yystack[$this->yyidx + 0]->minor.')'; }
2469 : #line 2474 "smarty_internal_templateparser.php"
2470 : #line 496 "smarty_internal_templateparser.y"
2471 1 : function yy_r142(){$this->_retvalue = '('.$this->yystack[$this->yyidx + -2]->minor.' % '.$this->yystack[$this->yyidx + 0]->minor.')'; }
2472 : #line 2477 "smarty_internal_templateparser.php"
2473 : #line 497 "smarty_internal_templateparser.y"
2474 2 : function yy_r143(){$this->_retvalue = '!(1 & '.$this->yystack[$this->yyidx + -1]->minor.')'; }
2475 : #line 2480 "smarty_internal_templateparser.php"
2476 : #line 498 "smarty_internal_templateparser.y"
2477 2 : function yy_r144(){$this->_retvalue = '(1 & '.$this->yystack[$this->yyidx + -1]->minor.')'; }
2478 : #line 2483 "smarty_internal_templateparser.php"
2479 : #line 499 "smarty_internal_templateparser.y"
2480 1 : function yy_r145(){$this->_retvalue = '!(1 & '.$this->yystack[$this->yyidx + -2]->minor.' / '.$this->yystack[$this->yyidx + 0]->minor.')'; }
2481 : #line 2486 "smarty_internal_templateparser.php"
2482 : #line 500 "smarty_internal_templateparser.y"
2483 3 : function yy_r146(){$this->_retvalue = '(1 & '.$this->yystack[$this->yyidx + -2]->minor.' / '.$this->yystack[$this->yyidx + 0]->minor.')'; }
2484 : #line 2489 "smarty_internal_templateparser.php"
2485 : #line 506 "smarty_internal_templateparser.y"
2486 0 : function yy_r152(){$this->prefix_number++; $this->compiler->prefix_code[] = '<?php $_tmp'.$this->prefix_number.'='.$this->yystack[$this->yyidx + 0]->minor.';?>'; $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor.'$_tmp'.$this->prefix_number; }
2487 : #line 2492 "smarty_internal_templateparser.php"
2488 : #line 508 "smarty_internal_templateparser.y"
2489 8 : function yy_r153(){$this->_retvalue = '=='; }
2490 : #line 2495 "smarty_internal_templateparser.php"
2491 : #line 509 "smarty_internal_templateparser.y"
2492 4 : function yy_r154(){$this->_retvalue = '!='; }
2493 : #line 2498 "smarty_internal_templateparser.php"
2494 : #line 510 "smarty_internal_templateparser.y"
2495 13 : function yy_r155(){$this->_retvalue = '>'; }
2496 : #line 2501 "smarty_internal_templateparser.php"
2497 : #line 511 "smarty_internal_templateparser.y"
2498 26 : function yy_r156(){$this->_retvalue = '<'; }
2499 : #line 2504 "smarty_internal_templateparser.php"
2500 : #line 512 "smarty_internal_templateparser.y"
2501 7 : function yy_r157(){$this->_retvalue = '>='; }
2502 : #line 2507 "smarty_internal_templateparser.php"
2503 : #line 513 "smarty_internal_templateparser.y"
2504 4 : function yy_r158(){$this->_retvalue = '<='; }
2505 : #line 2510 "smarty_internal_templateparser.php"
2506 : #line 514 "smarty_internal_templateparser.y"
2507 9 : function yy_r159(){$this->_retvalue = '==='; }
2508 : #line 2513 "smarty_internal_templateparser.php"
2509 : #line 515 "smarty_internal_templateparser.y"
2510 2 : function yy_r160(){$this->_retvalue = '!=='; }
2511 : #line 2516 "smarty_internal_templateparser.php"
2512 : #line 516 "smarty_internal_templateparser.y"
2513 0 : function yy_r161(){$this->_retvalue = '%'; }
2514 : #line 2519 "smarty_internal_templateparser.php"
2515 : #line 518 "smarty_internal_templateparser.y"
2516 5 : function yy_r162(){$this->_retvalue = '&&'; }
2517 : #line 2522 "smarty_internal_templateparser.php"
2518 : #line 519 "smarty_internal_templateparser.y"
2519 5 : function yy_r163(){$this->_retvalue = '||'; }
2520 : #line 2525 "smarty_internal_templateparser.php"
2521 : #line 520 "smarty_internal_templateparser.y"
2522 0 : function yy_r164(){$this->_retvalue = ' XOR '; }
2523 : #line 2528 "smarty_internal_templateparser.php"
2524 : #line 525 "smarty_internal_templateparser.y"
2525 42 : function yy_r165(){ $this->_retvalue = 'array('.$this->yystack[$this->yyidx + -1]->minor.')'; }
2526 : #line 2531 "smarty_internal_templateparser.php"
2527 : #line 527 "smarty_internal_templateparser.y"
2528 42 : function yy_r167(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.','.$this->yystack[$this->yyidx + 0]->minor; }
2529 : #line 2534 "smarty_internal_templateparser.php"
2530 : #line 528 "smarty_internal_templateparser.y"
2531 0 : function yy_r168(){ return; }
2532 : #line 2537 "smarty_internal_templateparser.php"
2533 : #line 529 "smarty_internal_templateparser.y"
2534 3 : function yy_r169(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'=>'.$this->yystack[$this->yyidx + 0]->minor; }
2535 : #line 2540 "smarty_internal_templateparser.php"
2536 : #line 530 "smarty_internal_templateparser.y"
2537 1 : function yy_r170(){ $this->_retvalue = '\''.$this->yystack[$this->yyidx + -2]->minor.'\'=>'.$this->yystack[$this->yyidx + 0]->minor; }
2538 : #line 2543 "smarty_internal_templateparser.php"
2539 : #line 539 "smarty_internal_templateparser.y"
2540 8 : function yy_r174(){$this->_retvalue = '".'.$this->yystack[$this->yyidx + -1]->minor.'."'; $this->compiler->has_variable_string = true; }
2541 : #line 2546 "smarty_internal_templateparser.php"
2542 : #line 540 "smarty_internal_templateparser.y"
2543 3 : function yy_r175(){$this->_retvalue = '".'.'$_smarty_tpl->getVariable(\''. substr($this->yystack[$this->yyidx + 0]->minor,1) .'\')->value'.'."'; $this->compiler->tag_nocache=$this->compiler->tag_nocache|$this->template->getVariable(trim($this->yystack[$this->yyidx + 0]->minor,"'"), null, true, false)->nocache; $this->compiler->has_variable_string = true; }
2544 : #line 2549 "smarty_internal_templateparser.php"
2545 : #line 542 "smarty_internal_templateparser.y"
2546 1 : function yy_r177(){ $this->_retvalue = '".('.$this->yystack[$this->yyidx + -1]->minor.')."'; $this->compiler->has_variable_string = true; }
2547 : #line 2552 "smarty_internal_templateparser.php"
2548 : #line 543 "smarty_internal_templateparser.y"
2549 2 : function yy_r178(){ $this->prefix_number++; $this->compiler->prefix_code[] = '<?php ob_start();?>'.$this->yystack[$this->yyidx + 0]->minor.'<?php $_tmp'.$this->prefix_number.'=ob_get_clean();?>'; $this->_retvalue = '".$_tmp'.$this->prefix_number.'."'; $this->compiler->has_variable_string = true; }
2550 : #line 2555 "smarty_internal_templateparser.php"
2551 :
2552 : /**
2553 : * placeholder for the left hand side in a reduce operation.
2554 : *
2555 : * For a parser with a rule like this:
2556 : * <pre>
2557 : * rule(A) ::= B. { A = 1; }
2558 : * </pre>
2559 : *
2560 : * The parser will translate to something like:
2561 : *
2562 : * <code>
2563 : * function yy_r0(){$this->_retvalue = 1;}
2564 : * </code>
2565 : */
2566 : private $_retvalue;
2567 :
2568 : /**
2569 : * Perform a reduce action and the shift that must immediately
2570 : * follow the reduce.
2571 : *
2572 : * For a rule such as:
2573 : *
2574 : * <pre>
2575 : * A ::= B blah C. { dosomething(); }
2576 : * </pre>
2577 : *
2578 : * This function will first call the action, if any, ("dosomething();" in our
2579 : * example), and then it will pop three states from the stack,
2580 : * one for each entry on the right-hand side of the expression
2581 : * (B, blah, and C in our example rule), and then push the result of the action
2582 : * back on to the stack with the resulting state reduced to (as described in the .out
2583 : * file)
2584 : * @param int Number of the rule by which to reduce
2585 : */
2586 : function yy_reduce($yyruleno)
2587 : {
2588 : //int $yygoto; /* The next state */
2589 : //int $yyact; /* The next action */
2590 : //mixed $yygotominor; /* The LHS of the rule reduced */
2591 : //TP_yyStackEntry $yymsp; /* The top of the parser's stack */
2592 : //int $yysize; /* Amount to pop the stack */
2593 402 : $yymsp = $this->yystack[$this->yyidx];
2594 402 : if (self::$yyTraceFILE && $yyruleno >= 0
2595 402 : && $yyruleno < count(self::$yyRuleName)) {
2596 0 : fprintf(self::$yyTraceFILE, "%sReduce (%d) [%s].\n",
2597 0 : self::$yyTracePrompt, $yyruleno,
2598 0 : self::$yyRuleName[$yyruleno]);
2599 0 : }
2600 :
2601 402 : $this->_retvalue = $yy_lefthand_side = null;
2602 402 : if (array_key_exists($yyruleno, self::$yyReduceMap)) {
2603 : // call the action
2604 402 : $this->_retvalue = null;
2605 402 : $this->{'yy_r' . self::$yyReduceMap[$yyruleno]}();
2606 399 : $yy_lefthand_side = $this->_retvalue;
2607 399 : }
2608 399 : $yygoto = self::$yyRuleInfo[$yyruleno]['lhs'];
2609 399 : $yysize = self::$yyRuleInfo[$yyruleno]['rhs'];
2610 399 : $this->yyidx -= $yysize;
2611 399 : for($i = $yysize; $i; $i--) {
2612 : // pop all of the right-hand side parameters
2613 398 : array_pop($this->yystack);
2614 398 : }
2615 399 : $yyact = $this->yy_find_reduce_action($this->yystack[$this->yyidx]->stateno, $yygoto);
2616 399 : if ($yyact < self::YYNSTATE) {
2617 : /* If we are not debugging and the reduce action popped at least
2618 : ** one element off the stack, then we can push the new element back
2619 : ** onto the stack here, and skip the stack overflow test in yy_shift().
2620 : ** That gives a significant speed improvement. */
2621 399 : if (!self::$yyTraceFILE && $yysize) {
2622 398 : $this->yyidx++;
2623 398 : $x = new TP_yyStackEntry;
2624 398 : $x->stateno = $yyact;
2625 398 : $x->major = $yygoto;
2626 398 : $x->minor = $yy_lefthand_side;
2627 398 : $this->yystack[$this->yyidx] = $x;
2628 398 : } else {
2629 247 : $this->yy_shift($yyact, $yygoto, $yy_lefthand_side);
2630 : }
2631 399 : } elseif ($yyact == self::YYNSTATE + self::YYNRULE + 1) {
2632 391 : $this->yy_accept();
2633 391 : }
2634 399 : }
2635 :
2636 : /**
2637 : * The following code executes when the parse fails
2638 : *
2639 : * Code from %parse_fail is inserted here
2640 : */
2641 : function yy_parse_failed()
2642 : {
2643 0 : if (self::$yyTraceFILE) {
2644 0 : fprintf(self::$yyTraceFILE, "%sFail!\n", self::$yyTracePrompt);
2645 0 : }
2646 0 : while ($this->yyidx >= 0) {
2647 0 : $this->yy_pop_parser_stack();
2648 0 : }
2649 : /* Here code is inserted which will be executed whenever the
2650 : ** parser fails */
2651 0 : }
2652 :
2653 : /**
2654 : * The following code executes when a syntax error first occurs.
2655 : *
2656 : * %syntax_error code is inserted here
2657 : * @param int The major type of the error token
2658 : * @param mixed The minor type of the error token
2659 : */
2660 : function yy_syntax_error($yymajor, $TOKEN)
2661 : {
2662 : #line 60 "smarty_internal_templateparser.y"
2663 :
2664 1 : $this->internalError = true;
2665 1 : $this->yymajor = $yymajor;
2666 1 : $this->compiler->trigger_template_error();
2667 : #line 2673 "smarty_internal_templateparser.php"
2668 0 : }
2669 :
2670 : /**
2671 : * The following is executed when the parser accepts
2672 : *
2673 : * %parse_accept code is inserted here
2674 : */
2675 : function yy_accept()
2676 : {
2677 391 : if (self::$yyTraceFILE) {
2678 0 : fprintf(self::$yyTraceFILE, "%sAccept!\n", self::$yyTracePrompt);
2679 0 : }
2680 391 : while ($this->yyidx >= 0) {
2681 391 : $stack = $this->yy_pop_parser_stack();
2682 391 : }
2683 : /* Here code is inserted which will be executed whenever the
2684 : ** parser accepts */
2685 : #line 52 "smarty_internal_templateparser.y"
2686 :
2687 391 : $this->successful = !$this->internalError;
2688 391 : $this->internalError = false;
2689 391 : $this->retvalue = $this->_retvalue;
2690 : //echo $this->retvalue."\n\n";
2691 : #line 2698 "smarty_internal_templateparser.php"
2692 391 : }
2693 :
2694 : /**
2695 : * The main parser program.
2696 : *
2697 : * The first argument is the major token number. The second is
2698 : * the token value string as scanned from the input.
2699 : *
2700 : * @param int the token number
2701 : * @param mixed the token value
2702 : * @param mixed any extra arguments that should be passed to handlers
2703 : */
2704 : function doParse($yymajor, $yytokenvalue)
2705 : {
2706 : // $yyact; /* The parser action. */
2707 : // $yyendofinput; /* True if we are at the end of input */
2708 403 : $yyerrorhit = 0; /* True if yymajor has invoked an error */
2709 :
2710 : /* (re)initialize the parser, if necessary */
2711 403 : if ($this->yyidx === null || $this->yyidx < 0) {
2712 : /* if ($yymajor == 0) return; // not sure why this was here... */
2713 403 : $this->yyidx = 0;
2714 403 : $this->yyerrcnt = -1;
2715 403 : $x = new TP_yyStackEntry;
2716 403 : $x->stateno = 0;
2717 403 : $x->major = 0;
2718 403 : $this->yystack = array();
2719 403 : array_push($this->yystack, $x);
2720 403 : }
2721 403 : $yyendofinput = ($yymajor==0);
2722 :
2723 403 : if (self::$yyTraceFILE) {
2724 0 : fprintf(self::$yyTraceFILE, "%sInput %s\n",
2725 0 : self::$yyTracePrompt, $this->yyTokenName[$yymajor]);
2726 0 : }
2727 :
2728 : do {
2729 403 : $yyact = $this->yy_find_shift_action($yymajor);
2730 403 : if ($yymajor < self::YYERRORSYMBOL &&
2731 403 : !$this->yy_is_expected_token($yymajor)) {
2732 : // force a syntax error
2733 0 : $yyact = self::YY_ERROR_ACTION;
2734 0 : }
2735 403 : if ($yyact < self::YYNSTATE) {
2736 403 : $this->yy_shift($yyact, $yymajor, $yytokenvalue);
2737 403 : $this->yyerrcnt--;
2738 403 : if ($yyendofinput && $this->yyidx >= 0) {
2739 0 : $yymajor = 0;
2740 0 : } else {
2741 403 : $yymajor = self::YYNOCODE;
2742 : }
2743 403 : } elseif ($yyact < self::YYNSTATE + self::YYNRULE) {
2744 402 : $this->yy_reduce($yyact - self::YYNSTATE);
2745 400 : } elseif ($yyact == self::YY_ERROR_ACTION) {
2746 1 : if (self::$yyTraceFILE) {
2747 0 : fprintf(self::$yyTraceFILE, "%sSyntax Error!\n",
2748 0 : self::$yyTracePrompt);
2749 0 : }
2750 1 : if (self::YYERRORSYMBOL) {
2751 : /* A syntax error has occurred.
2752 : ** The response to an error depends upon whether or not the
2753 : ** grammar defines an error token "ERROR".
2754 : **
2755 : ** This is what we do if the grammar does define ERROR:
2756 : **
2757 : ** * Call the %syntax_error function.
2758 : **
2759 : ** * Begin popping the stack until we enter a state where
2760 : ** it is legal to shift the error symbol, then shift
2761 : ** the error symbol.
2762 : **
2763 : ** * Set the error count to three.
2764 : **
2765 : ** * Begin accepting and shifting new tokens. No new error
2766 : ** processing will occur until three tokens have been
2767 : ** shifted successfully.
2768 : **
2769 : */
2770 1 : if ($this->yyerrcnt < 0) {
2771 1 : $this->yy_syntax_error($yymajor, $yytokenvalue);
2772 0 : }
2773 0 : $yymx = $this->yystack[$this->yyidx]->major;
2774 0 : if ($yymx == self::YYERRORSYMBOL || $yyerrorhit ){
2775 0 : if (self::$yyTraceFILE) {
2776 0 : fprintf(self::$yyTraceFILE, "%sDiscard input token %s\n",
2777 0 : self::$yyTracePrompt, $this->yyTokenName[$yymajor]);
2778 0 : }
2779 0 : $this->yy_destructor($yymajor, $yytokenvalue);
2780 0 : $yymajor = self::YYNOCODE;
2781 0 : } else {
2782 0 : while ($this->yyidx >= 0 &&
2783 0 : $yymx != self::YYERRORSYMBOL &&
2784 0 : ($yyact = $this->yy_find_shift_action(self::YYERRORSYMBOL)) >= self::YYNSTATE
2785 0 : ){
2786 0 : $this->yy_pop_parser_stack();
2787 0 : }
2788 0 : if ($this->yyidx < 0 || $yymajor==0) {
2789 0 : $this->yy_destructor($yymajor, $yytokenvalue);
2790 0 : $this->yy_parse_failed();
2791 0 : $yymajor = self::YYNOCODE;
2792 0 : } elseif ($yymx != self::YYERRORSYMBOL) {
2793 0 : $u2 = 0;
2794 0 : $this->yy_shift($yyact, self::YYERRORSYMBOL, $u2);
2795 0 : }
2796 : }
2797 0 : $this->yyerrcnt = 3;
2798 0 : $yyerrorhit = 1;
2799 0 : } else {
2800 : /* YYERRORSYMBOL is not defined */
2801 : /* This is what we do if the grammar does not define ERROR:
2802 : **
2803 : ** * Report an error message, and throw away the input token.
2804 : **
2805 : ** * If the input token is $, then fail the parse.
2806 : **
2807 : ** As before, subsequent error messages are suppressed until
2808 : ** three input tokens have been successfully shifted.
2809 : */
2810 0 : if ($this->yyerrcnt <= 0) {
2811 0 : $this->yy_syntax_error($yymajor, $yytokenvalue);
2812 0 : }
2813 0 : $this->yyerrcnt = 3;
2814 0 : $this->yy_destructor($yymajor, $yytokenvalue);
2815 0 : if ($yyendofinput) {
2816 0 : $this->yy_parse_failed();
2817 0 : }
2818 0 : $yymajor = self::YYNOCODE;
2819 : }
2820 0 : } else {
2821 0 : $this->yy_accept();
2822 0 : $yymajor = self::YYNOCODE;
2823 : }
2824 403 : } while ($yymajor != self::YYNOCODE && $this->yyidx >= 0);
2825 403 : }
2826 : }
2827 : ?>
|